[]基于JAVA的医院门诊信息管理系统设计与实现 联系客服

发布时间 : 星期三 文章[]基于JAVA的医院门诊信息管理系统设计与实现更新完毕开始阅读efb0cb2eed630b1c59eeb55a

}

}

}

strSQL+=\strSQL+=pPerDay[i];

strSQL+=\

stmt.addBatch(strSQL); stmt.executeBatch(); conn.commit(); res=1;

catch(SQLException sqle){ }

catch(IllegalArgumentException iae){ }

catch(Exception e){ } finally{ }

return res; res=0;

Debug.log(Debug.getExceptionMsg(iae)); res= -2;

Debug.log(Debug.getExceptionMsg(sqle)); conn.rollback(); res= -1;

(2) 获取医生账户信息:getDoctorInfo() 本方法返回所有医生信息。 返回值如下: ? 1:查询成功。 ? 0:抛出一般异常。 ? -1:抛出数据库异常。 ? -2:医生账户不存在。

(3) 删除医生账户信息:removeDoctor(String did) 本方法删除医生账户,其流程如下:

从doctor表中删除记录 从appointment表中删除记录 从curappointment表中删除记录 从pinqueue表中删除记录 从history表中删除记录。 ? 参数

did:医生编号。

? 返回值

? 1:操作成功。 ? 0:抛出一般异常。 ? -1:抛出数据库异常。 ? -2:医生账户不存在。 5.2.2.4 抽象用户模型DBOperation类

本类位于hospital.db.dboperation包中,定义了一个抽象的用户模型,系统中所有的角色(patient,doctor,admin)都是它的子类。DBOperation的核心代码如下:

abstract class DBOperation{

protected Statement stmt; protected ResultSet rs; protected ResultSet result; protected String strSQL; protected String id; protected Connection conn; public DBOperation(){} protected DBOperation(String id)

throws InvalidUserException{ this.id=id; this.result=null; try{ }

catch(InvalidUserException iue){

throw iue; }

this.checkUser(id);

}

public ResultSet getResultSet(){

return result; }

protected abstract int login(String password); public void closeConnection(){

try{

if(rs!=null){ }

if(stmt!=null){ }

this.stmt.close(); this.rs.close();

}

catch(SQLException sqle){ }

Debug.log(Debug.getExceptionMsg(sqle));

}

protected abstract void checkUser(String id) }

throws InvalidUserException;

下面对DBOperation中的一些关键方法的功能和原理加以说明。 (1) 构造器:DBOperation(String id) 此类构造器中需要完成以下工作。 ? 由参数id初始化私有标志符变量id。 ? 初始化ResultSet对象result为null。

? 调用抽象方法checkUser(String id)(需由子类实现)判断用户名是否合法。若用户名不合法,则抛出自定义异常“InvalidUserException”。 (2) 释放数据库资源:closeConnection() 本方法完成以下工作。 ? 关闭ResultSet对象rs。 ? 关闭Statement对象stmt。

? 由于Connection对象conn是单例对象,可以被其它类重用,所以不在这里关闭。

(3) 用户登录:login(String password)

本方法处理用户的登录操作,由于有些操作不需要用户登录就可以完成(比如患者查询医生信息),所以从构造器中把跟登录有关的内容分离出来放在这个方法中,当需要登录时只要使用密码为参数(用户名已被记录在类变量id中)调用login()方法就行了。另外,各个子类对用户登录操作的实现不一样,所以把此方法定义成抽象方法,由各个子类去实现。 (4) 判断用户名的合法性:checkUser(String id)

这个方法被构造器调用,检查用户名的合法性(即用户名是否存在于数据库中)。由于各个子类实现的方式各不相同,所以将此方法定义为抽象方法,由各个子类去实现。

6 测试

6.1 测试基本方法

6.1.1 界面测试

界面测试是测试过程中比较简单直观的一种测试方法,只要细心地按界面要求核对就行了。可这块往往是程序开发人员容易忽视和遗漏的地方,也常常是出Bug的地方。下面是界面测试中经常实现的几种Bug:

(1) 错别字,即界面中的标题或者文本内容中出现了错别字。

这种Bug如果测试人员不细心,很难找出来,可能会出现在提示信息或界面中。

(2) 出现了一些根本读不懂的内容,一般多出现在程序的提示信息和一些较长的文本中。

这种情况基本上出现在拼起来显示的提示中,比如程序员为了调试程序,会alert出来一些xml或者SQL的信息,还有页面的简单陈述是通过变量拼组起来的,通过程序将字一个一个地输出出来。通常是因为程序中的控制错误或是程序开发人员对程序没有认真的自测,导致出现这种Bug。

(3) 程序员自创的词语,虽然意思对,但不符合界面的标准及要求。 这种情况基本上是由于开发人员使用一些专用术语,并且混杂着自己的理解出现Bug,主要是由于开发过程中团队合作没有明确的分工,没有统一的规范用语。

(4)页面类似的内容中,明显有字体、字号不同的情况,使界面整体风格看上去不一致。

这种情况只出现在没有CSS定义的情况下,或是已经定义的CSS,开发人员在开发过程中没有调用。

(5)标题相近的程序及模块,把标题弄混。

这种情况多是因为业务方面的定义名称很相似或很类似,并且业务实体方面也很类似,开发人员在开发过程中忽略了开发名称和模块,只单独地实现其功能。

6.1.2 功能测试

顾名思义,功能测试主要是测试程序模块是否实现了设计中所要求的功能。