《最新[]基于JAVA的医院门诊信息管理系统设计与实现.doc》由会员分享,可在线阅读,更多相关《最新[]基于JAVA的医院门诊信息管理系统设计与实现.doc(218页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date基于JAVA的医院门诊信息管理系统设计与实现基于JAVA的医院门诊信息管理系统设计与实现基于JAVA的医院门诊信息管理系统设计与实现摘 要医院门诊信息管理系统是一个基于Internet的应用系统,它是一个面对当前的医院门诊管理工作基本还处于手工和半信息自动化处理状态而应运而生的一个基于Internet的一个信息自动化的系统,整个系统从符合操作简便、界面友好、灵活、实用
2、、安全的要求出发,完成预约、诊断、开具处方、保存病历管理的全过程。医疗事业单位只需具备访问Internet的条件即可在系统发布的站点上进行医疗门诊的管理。在图型化的人机界面中完成日常的医疗门诊管理工作.一方面摆脱了时间和空间的限制,另一方面有效的解决的数据共享的问题。经过实际使用证明,本文所设计的医院门诊信息管理系统可以满足医院在门诊管理方面的需要。关键词:JSP;医院门诊;信息管理系统JSP-BASED HOSPITAL OUTPATIENT INFORMATION MANAGEMENT SYSTEM ABSTRACTHospital outpatient information manag
3、ement system is an Internet-based application system. It is an Internet-based automated information system that solves the outpatient medical management of the basic work is still in the manual and semi-automated processing of information. The entire system is simple, friendly interface, flexible, p
4、ractical and safe, and complete the entire process of booking, diagnosis, prescribing and medical records management preservation. Medical institutions only need visit the Internet can use the system for the release site medical clinic management. Using the pattern of the man-machine interface compl
5、ete routine outpatient medical management. While out of time and space constraints, on the other hand, it is an effective solution to the data sharing problem. Through practical show that JSP-based hospital outpatient information management system to meet the hospital in-patient management needs. Ke
6、y Words: JSP; Hospital Outpatient; Information Management System1 绪论医院门诊信息管理系统是信息管理系统在医院门诊部门中的应用。随着Internet技术的发展,其被广泛应用与各行各业,医院门诊部门是其一个重要的应用领域。伴随着医院的改革,医院信息化进程的加速,建立基于Web的医院门诊信息管理系统显得尤为重要。1.1 课题研究现状分析随着医疗卫生事业的发展,医院改革的深入,信息的有效、高效利用,已受到人们的关注。充分利用现代科技手段,加强各种信息的利用开发,是医院信息管理的一个重要内容,也是当今医院的需要。目前的医院仅仅把医院的信
7、息管理系统作为微机工具系统,而没有发挥其管理的真正功能;系统分散设计,各部门独立实施,没有考虑信息的关联和共享,存在信息孤岛现象;医院管理错综复杂,从而形成了医院信息管理系统数据的多样化,数据量大等特点1。通过本次医院门诊信息系统的设计,解决医院系统中各种信息管理的集成问题,使医院系统的各种信息管理一体化。同时,了解医院门诊的流程,把握信息管理系统开发概念,掌握动态网站技术,熟悉系统开发的进程,做到会用相关工具设计和开发相关系统,并实现。1.2 技术发展趋势随着Internet技术的普及和发展基本上各种不同的操作系统平台上都有相应的Web浏览器程序,这就使得医院门诊信息管理系统具有非常广泛的平
8、台兼容性。客户端仅需一个Web浏览器程序,不再需要安装其它软件。客户程序主要包括HTML页面和一些特殊的数据库访问程序,它们都存放在Web服务器上,客户应用系统的设计、维护和更新工作只需在Web服务器上进行,这样就大大降低了系统安装、测试、维护的工作量2。通过基于Web的医院门诊信息管理系统的开发,可以实现对医院门诊相关信息的整合管理以及共享,并且通过组件技术的应用,可以使得本医院门诊信息管理系统具有很大的可扩展性和可移植性3。2 医院门诊信息管理系统需求分析2.1 业务分析2.1.1 业务角色(1) 患者角色l 可联机注册成为用户,设定自己的登陆名及密码;l 可按医生姓名自定义查询;l 可基
9、于查询结果进行预约,若指定医生当日预约量已满,则预约失 败。预约结果随机返回给患者;l 可对已经进行的预约情况查看或撤销。图 2.1 患者用例图 (2) 医生角色l 可查看预约患者的情况;l 可查询患者病历;l 可创建患者病历;l 可对患者的病历进行修改。图 2.2 医生用例图(3) 管理员角色l 可添加或删除医生账号。图 2.3 管理员用例图2.1.2 业务词汇(1) 医院门诊:门诊是医院接诊病人的场所。病人到医院之后首先在门诊由医护人员进行接诊,经过一整套的诊断手段,给病人得出初步诊断,并且进行进一步治疗的指导。(2) 预约:由于医院某些专家的就诊患者多,医生为了确保有时间问诊患者并且患者
10、为了确定来医院就诊时可以准时接收医生的诊断而采用的一种手段。(3) 电子病历:由于传统的纸质病历不利于保存和查询,而且浪费资源,所以采用将病历信息电子化,便于整个医院信息的共享和交流。(4) 医生基本信息:记录医生编号、姓名、年龄、登录时的密码、职称、所属科室和专家门诊科目等医生相关信息。(5) 患者基本信息:记录注册患者的编号、姓名、登录时用户名、登录时密码、年龄、性别、家庭住址和联系电话等患者相关信息。(6) 病历基本信息:记录病历记录的编号、主治医生编号、症状、诊断、患者编号、处方等病历相关的信息。(7) 预约信息:记录预约记录的编号、主治医生的编号、患者编号、预约时间、预约就诊时间等预
11、约相关信息。2.2 系统需求定义本系统是基于JSP的医疗门诊信息管理系统,要求实现对医院里医生信息、病人、病历以及医药信息进行有效管理及其开发,主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面4,重点解决的问题包括:(1) 病历基本信息管理:病历信息包括病历记录的编号、主治医生的编号、症状、诊断、患者编号、处方等内容,医生可以创建病历并且可以添加病历信息和修改病历信息,病人可以查询自己的病历信息。(2) 患者基本信息管理:患者基本信息包括患者编号、姓名、登录系统的用户名、登录密码、年龄、性别、家庭住址和联系电话等。患者注册时向患者表中插入一条记录。(3) 医生基本信息管理:医生基本
12、信息包括医生的编号、姓名、年龄、性别、职称、所属科室、学历等内容,管理员通过登录可以添加和删除医生信息。(4) 预约信息管理:预约信息包括记录编号、主治医生编号、患者编号、预约就诊时间等内容,病人可以预约医生和取消预约,医生登录后可以查询自己的预约信息。本课题的应用难点有:(1) 病历基本信息管理:传统的纸质病历既不便于患者、医生查询信息,也不便于保存,本系统才用电子病历5。病历基本信息管理系统选择基于三层结构的C/S、B/S混合模式,三层结构中,底层是电子病历数据库服务器,用于存储和管理病历等数据;中间层是应用服务器和Web服务器,其中应用服务器用于实现系统的业务逻辑,完成各种复杂的管理操作
13、和数据存取,Web服务器用于提供系统的Web服务,还可以通过网关与外部系统进行数据交换和信息传递;最上层是客户端,位于门诊大厅,Windows用户通过专用程序完成相关操作,IE用户通过浏览器使用。(2) 预约信息管理:患者登录系统预约医生,信息插入预约表,或者取消预约,即从预约表中删除相关预约信息;医生通过登录可以创建病历,通过给预约的患者看病在病历表中添加病历信息。3 医院门诊信息管理系统技术解决方案比较3.1 Web应用解决方案本系统采用动态网站技术。早期的动态网站开发技术使用的是CGI-BIN接口。这种开发技术存在着严重的扩展性问题:每一个新的CGI程序要求在服务器上新增一个进程。为克服
14、这一弊端,微软公司提出了Active Server Pages(ASP)技术,该技术利用“插件”和API简化了Web应用程序的开发。Hypertext Preprocessor(超文本预处理器),即PHP动态网站开发技术与ASP相似,也是一种嵌入HTML文档的服务器端脚本语言。还有一些技术,如Java Servlets技术,利用该技术可以很容易地用Java语言编写交互式的服务器端代码。太阳微系统公司(Sun Microsystems Inc.)在Web服务器、应用服务器、交易系统以及开发工具供应商间广泛支持与合作下,整合并平衡了已经存在的对Java编程环境(例如Java Servlets和Ja
15、vaBeans)进行支持的技术和工具后产生了一种新的、开发基于Web应用程序的方法JavaServer Pages技术(JSP)。这种动态网站开发技术能够在任何的Web或应用服务器上运行,而且分离了应用程序的逻辑和页面显示,能够进行快速的开发和测试,并且简化了开发基于Web的交互式应用程序的过程。基于此,我们选择JSP+JavaBean技术来实现相应模块的开发。3.2 基于JSP + JavaBean的解决方案3.2.1 什么是JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言
16、作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序6。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java
17、Applet,甚至无Frame。3.2.2 使用JSP的好处JSP的设计目标主要是提供一种更为简便、有效的动态网页编写手段,并且增强网页程序的独立性、兼容性和可重用性。它是通过以下几个方面加以实现的: (1) 简便性和有效性 JSP动态网页的编写与一般的静态HTML的网页的编写十分相似,只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(而且此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签利用别人已写好的部件来实现动态网页的编写。这样,一个不熟悉脚本语言的网页开发者,完
18、全可以利用JSP做出漂亮的动态网页,而这在其他的动态网页开发中是不可思议的。 (2) 程序的独立性 JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性,换句话说,就是拥有程序的对平台的独立性。即:Write once, Run anywhere! (3) 程序的兼容性 因为 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务:从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。 3.2.3 什么是JavaBeanJavaBean是一种可重复用、
19、跨平台的软件组件。JavaBean可以为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。3.2.4 使用JavaBean的好处 JavaBean最大的优点在于可以实现代码的可重用性。同时,JavaBean又具有一下特性:l JavaBean是一个公共的(public)类;l JavaBean有一个不带数的构造方法;l JavaBean通过get方法没置属性,通过set方法获取属性;l 易于维护、使用、编写;l 可移植性强,但仅限于Jav
20、a工作平台;l 便于传输,不论是本地还是网络;l 可以以其它部件的模式进行工作。3.2.5 使用JSP + JavaBean的好处JSP与JavaBean搭配使用,有3个好处:l 使得html与Java程序分离,这样便于维护代码。如果把所有的程序 代码都写到JSP网中,会使得代码繁杂,难以维护。l 可以降低开发JSP网页人员对java编程能力的要求。l JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率。3.3 JSP及JavaBean工作原理介绍3.3.1 JSP内置对象jsp有九种内置对象:request,re
21、ponse,out,session,application,config,pagecontext,page,exception7。(1) request对象:request对象代表请求对象,它被包装在HttpServletRequest接口。通过getParameter方法可以得到request的参数,通过GET、POST、HEAD等方法可以得到request的类型,通过Cookies、Referer等可以得到请求的HTTP头。来自客户端的请求经Servlet容器处理后,有Request对象进行封装。它作为jspService()方法的一个参数有容器传递给JSP页面。Request对象主要方法
22、:l getAttribute(String name) 返回name属性值。l getAttributeNames() 返回request对象所有属性名字。l getCookies() 返回客户端的cookies对象。l getHeader(String name) 获得HTTP协议定义的文件头信息。l getHeaders(String name) 返回指定名字的request Header的所有值。l getMethod() 获得客户端向服务器端传送数据的方法。l getParameter(String name) 获得客户端传送给服务器端的参数值。 l getParameterName
23、s() 获得客户端传送给服务器端的所有参数的名字。l getParameterValue(String name) 获得指定参数的所有值。l getProtocol() 获取客户端向服务器端传送数据所依据的协议名称。l getQueryString() 获得查询字符串。l getRequestURI() 获取发出请求字符串的客户端地址。l getRemoteAddr() 获取客户端的IP地址。 l getRemoteHost() 获取客户端的名字。l getServerName() 获取服务器的名字。l getServletPath() 获取客户端所请求的脚本文件的文件路径。l getServ
24、erPort() 获取服务器的端口号。l setAttribute(String name, java.lang.Object objt) 设置名字为name的request参数的值,该值是由java.lang.Object类型的objt指定。(2) response对象:response被包装成HttpServletResponse接口,它封装了JSP产生响应,然后被发送到客户端以响应客户的请求。和Request对象一样,它由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置HTTP状态码和response头。Response对象的主要方法有:l
25、addCookie(Cookie cook) 添加一个cookie对象,用来保存客户端的用户信息。l addHeader(String name , String value) 添加HTTP文件头信息。l containsHeader(String name) 判断指定名字的HTTP文件头是否已经存在。l sendError(int) 向客户端发送错误的信息。l setHeader(String name , String value) 设置指定名字的HTTP文件头的值。(3) pageContext对象:pageContext对象被封装成javax.servlet.jsp.pageConte
26、xt接口,它为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中以命名对象的访问。它的创建和初始化都是由容器完成的。pageContext对象中常用的方法有:l getAttribute scope() 检索一个特定的已经命名对象的范围。l findAttribute() 用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。l setAttribute() 用来设置默认页面的范围或特定范围之中的已命名对象。l removeAttribute() 用来删除默认页面范围或特定范围之中已命名的对象。(4) session对象:session对象用来保存每个用户的信息,
27、以便跟踪每个用户的操作状态。其中,session信息保存在容器里,session的ID保存在客户机的Cookie中。session对象的主要方法:l getAttribute(String name) 获取与指定名字name相联系的信息。l getAttributeNames() 返回session对象中存储的每一个属性对象。l getCreationTime() 返回session被创建的时间。l getId() 返回唯一的标识,为每一个session而产生。l getLastAccessedTime() 返回当前session对象最后被客户发送的时间。l getMaxInactiveInt
28、erval() 返回总时间(秒)。l removeAttribute(String name) 删除与指定名字name的相联系的信息。l setAttribute(String name , java.lang.object value) 设置指定名字name的属性值value,并存储在session对象中。(5) application对象:application对象为多个应用程序保存信息。application对象的主要方法:l getAttribute(String name) 返回由name指定的名字application对象的属性的值。l getAttributeNames() 返回
29、所有application对象的属性的名字。l getInitParameter(String name) 返回由name指定的名字的application对象的某个属性的初始值。l getServletInfo() 返回servlet编译器当前版本信息。l setAttribute(String name , Object object) 设置指定名字name的application对象的属性值object.(6) out对象:out对象被封装成javax.servlet.jsp.JspWriter接口。他主要用来向客户端输出数据,代表输出流的对象。out对象的主要方法:l out.prin
30、t/println (boolean | char | char | double | float | int | long | object | string |) 输出各种类型的数据。l out.newLine() 输出一个换行字符。l out.flush() 输出缓冲区里的数据。l out.close() 关闭输出流。l out.clearBuffer() 清除缓冲区里的是数据,并把数据输出到客户端。l out.clear() 清除缓冲区里的是数据,但不会把数据输出到客户端。l out.getBufferSize() 获得缓冲区的大小。l out.getRemaining() 获取缓冲区
31、中没有被占用的空间的大小。l out.isAutoFlush() 返回布尔值。(7) config对象:config对象被封装成javax.servlet.ServletConfig接口,它表示Servlet的配置。config对象的主要方法:getServletContext() 返回执行者的Servlet上下文。getServletName() 返回Servlet的名字。getInitParameter(String name) 返回名字为name的初始参数的值。getInitParameterNames() 返回这个JSP的所有的初始参数的名字。(8) page对象:page对象是类ja
32、va.lang.Object类的一个实例,它是JSP本身,通过这个可以对它进行访问。(9) exception对象:exception对象是java.lang.Throwable类的一个实例。它指的是运行时的异常,也就是被调用的错误页面的结果,只在错误页面(在页面指令里有isErrorPage=true的页面)中才可以使用。3.3.2 JSP + JavaBean运行环境本系统建立在Windows XP平台上,用Apache+Tomcat作为JSP服务端引擎,采用Eclipse作为后台设计开发环境。Apache是一个web服务器环境程序启用他可以作为web服务器使用。不过 只支持静态网页,不支
33、持动态网页,如(.asp,.jsp)等。如果要在Apache环境下运行jsp网页,就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat。Tomcat是一个免费且开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和jsp规范总能在Tomcat中得到体现。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,To
34、mcat会自动检测到这个文件,并将其解压。Eclipse是替代IBM Visual Age for Java的下一代IDE开发环境。根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。Eclipse是开放源代码的项目,其本身是用Java语言编写,但下载的压缩包中并不包含Java运行环境,需要用户自己另行安装JRE,并且要在操作系统的环境变量中指明JRE中bin的路径。Eclipse提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。4 医院门诊信息管理系统概要设计4.1 医院门诊信息管理系统文档结构定义本系统包括两个逻辑层包ho
35、spital.db包和hospital.db.operation包以及一些.jsp文件。(1) hospital.db包封装了整个网站用于完成基础功能的类,具体包括:l hospital.db.Util:辅助类,用于完成一些JSP中常用的功能,比如字符集的转换。l hospital.db.InitServlet:初始化整个Servlet环境。l hospital.db.DBConnection:与整个数据库连接,返回Connection对象。l hospital.db.Debug:记录日志,将信息写入指定的日志文件中。(2) hospital.db.operation包封装了所有用户角色有关的
36、模型,具体如下:l hospital.db.dboperation.DBOperation:建立用户的抽象模型,供子类继承。l hospital.db.dboperation.Admin:继承自DBOperation,定义管理员模型。l hospital.db.dboperation.Doctor:继承自DBOperation,定义医生模型。l hospital.db.dboperation.Patient:继承自DBOperation,定义患者模型。l hospital.db.dboperation.InvalidUserException:继承自Exception,用以封装一个表示“非法用
37、户名”的异常。(3) .jsp文件:以适当的方式通过逻辑层与数据层交互及一些页面代码。4.2 数据组织与定义4.2.1 数据库概念设计 医院门诊信息管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查找操作上,主要包括患者信息、医生信息、预约信息8。因此:l 患者和医生有不同的权限因此身份不同。l 用户信息记录不同的用户资料。l 预约信息有预约时间、预约用户等。经过上述功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:l 管理员信息:包括数据项管理员名、密码等。l 医生信息:包括数据项医生名、密码等。l 患者信息:包括数据项用户名、密码等。l 预约信息:包括数据
38、项医生名、预约时间等。由上面的数据项和数据结构,以及系统的功能分析,得到系统数据库的实体-联系图如图患者病历预约信息医生管理员可预约数量管理治疗有有有有管理1111111nnnnnnn4.3 系统数据库E-R图4.3.2 数据库逻辑设计根据以上分析知,系统需要的基本信息表有:管理员信息表、医生信息表、患者信息表、病历记录表和预约记录表。本系统是一个多用户系统,牵涉多个管理人员和多用户,因此需要针对不同类别的用户进行密码认证和权限限制,防止出现越权现象。部分具体数据库设计如下:(1) 医生表:用于存储医生的个人信息。表 4-1 医生表的结构字段名类型备注约束条默认值DIDvarcher(5)医生
39、编号主键Namevarchar(12)姓名索引Agetinyint(3) unsigned年龄0Passwordvarchar(20)密码初始:=DIDSextinyint(3) unsigned性别1 - 男2 - 女1Levelvarchar(12)医生职称Sectionvarchar(12)所属科室索引Specialismvarchar(20)专家门诊科目Phonevarchar(15)联系电话可为空(2) 患者表:用于存储患者的个人信息。表 4-2 患者表的结构字段名类型备注约束条默认值PIDmediumint(8) unsignedauto_increment患者编号主键Nameva
40、rchar姓名UserNamevarchar登录时用户名唯一索引Passwordvarchar密码Agetinyint(3) unsigned年龄0Sextinyint(1) unsigned性别1 男2 女1AddressTinyText家庭住址可为空Phonevarchar联系电话可为空(3) 病历记录表:病历记录表记录了患者的病历信息。表 4-3 病历记录表的结构字段名类型备注约束条默认值HIDint unsigned(10)auto_increment病历记录编号主键Doctorvarchar(5)主治医生编号索引DescriptionTinyText症状DiagnoseTinyTex
41、t诊断Patientmediumint(8) unsigned患者编号索引0RxTinyText处方SDateDatetime开始时间0000-00-00 00:00:00FDateDatetime结束时间可为空0000-00-00 00:00:00Finishedtinyint(1) unsigned就诊过程是否结束1 是2 否0(4) 预约记录表:预约记录表记录了已预约但尚未创建病历的患者信息。表 4-4 预约记录表的结构字段名类型备注约束条默认值QIDint unsigned(10)auto_increment记录编号主键Doctorvarchar(5)主治医生编号索引Patientme
42、diumint(8) unsigned患者编号索引0DateDatetime预约时间0000-00-00 00:00:00Daytinyint(1) unsigned预约就诊时间0 - 周日1 周一2 周二3 周三4 周四5 周五6 周六0APtinyint(1) unsigned预约就诊时间0 上午1 下午0(5) 管理员表:管理员表存储了与管理员有关的信息。图 4-5 管理员表结构字段名类型备注约束条默认值AIDtinyint(2) unsignedauto_increment管理员编号主键Usernamevarchar(20)登录时的用户名唯一索引PasswordVarchar(20)登
43、录时密码EmailVarchar(20)电子邮件NameVarchar(12)姓名PhoneVarchar(15)联系电话可为空5 基于JSP与JavaBean的医院门诊信息管理系统详细设计5.1 系统功能模块设计根据客户要求,操作者的权限层次要有明确的分类,进入软件时需要进行身份验证;出于对患者个人隐私的负责,患者的病历记录只能在患者就医期间有主治医生条约,其它任何人包括管理员无权查阅。整个系统需要实现以下功能,如图所示:医疗门诊信息管理系统病历基本信息管理模块医生基本信息管理模块患者基本信息管理模块预约信息管理模块图 5.7 系统功能模块图5.2 系统功能模块实现5.2.1 hospita
44、l.db包中的类图 4.1 hospital.db包的UML图5.2.1.1 与数据库建立连接类DBConnection本类位于hospital.db包中,由于Connection是一个非常耗费资源的对象,因此在这里使用单例模式设计DBConnection类,保证了真个生命周期内只存在一个Connection对象,该对象可以被其它类重复利用,这样可以大大节省系统资源。DBConnection类核心代码如下:public abstract class DBConnectionpublic static Connection getConnection()Connection conn=null;
45、tryif(conn = null)Class.forName(org.gjt.mm.mysql.Driver); / conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/hospital,root,nemo);Debug.log(Connecion created.);elseStatement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(SELECT COUNT(*) FROM administrator);if(rs=null|!rs.next()Class.forName(com.mysql.jdbc.Driver); conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/hospital,root,nemo);Debug