total_price int(10) 否 否 总价
heal_name varchar(20) 否 否 开单人
remarks varchar(1000) 是 否 备注
(7)库存信息表(storage)
库存信息表主要用来保存药品的库存信息,主要包括库存id,药品id,药品名称,有效日期,库存数量等,其中库存id是主键,药品id是外键,不允许为空,如表3-7所示。
表3-7 库存信息表
名称 类型 是否允许为空 是否主键 备注
storage_id int(11) 否 是 自增
drug_id Int(11) 否 否 外键
drug_name varchar(100) 否 否 药品名称
effective_date date 否 否 有效日期
storage_number int(11) 否 否 库存数量
warn_number Int(11) 否 否 警告数量
remarks varchar(1000) 是 否 备注
3.12 本章小结
本章介绍了系统各功能模块的设计和数据库设计。提供了大量的用例图、时序图、及活动图。其中用例图用于细化需求,描述功能分块以及定义角色权限。时序图描述了系统各类间的函数调用时间顺序,业务逻辑等。活动图用于描述模块实现流程以及各类间关系。
第四章 系统实现
4.1 系统架构
本系统实现采用MVC三层架构的模式,具体利用了Struts2、Hibernate框架技术。这三层为View(JSP页面)、Action层(Struts2的各个Action类)、Model层(Hibernate包装后的数据库表对象)。其中JSP页面负责用户接口,只要关心怎样以友好的方式显示用户界面,展示信息并且把与用户交互过程中发生变化的数据传递给Action层以及接收并显示从Action层返回的处理数据。View层不需要关注逻辑。Action层接收从JSP页面传过来的数据,封装业务逻辑调用Model层的方法。Action层不直接与数据库交互,而是将数据库查询操作委托给Model层,通过调用Model层的方法获取查询数据以及执行insert、update、delete 等SQL操作。这样分层后各层各司其职,逻辑清晰:业务逻辑集中在Action层,而不是遍布在表单页各个地方;SQL操作全集中在了Model层。这便于代码管理,错误定位、处理,及SQL优化。
将MySQL数据库表封装成对应的类和hbm.xml描述文件,数据库中的一张表对应于一个JAVA类,该类中将数据库的字段定义为它的属性,在相对应的hbm.xml文件中配置数据库表字段和Java类属性的映射关系,利用Hibernate框架即可实现数据库增删改查。
4.2 数据访问
4.2.1数据访问方式
本系统利用Hibernate框架的数据访问技术来连接MySQL数据库。为了让系统内所有数据库访问拥有一致的连接,将用于创建连接对象的连接字符串保存在hibernate.cfg.xml文件中,而没有采用硬编码的方式。
4.2.2数据访问配置及核心代码
(1) 下面的连接字符串利用JDBC驱动连接MySQL数据库。
<!-- 数据库的URL -->
<property name="connection.url">
jdbc:mysql://localhost:3306/medicinemsys?useUnicode=true&characterEncoding=UTF-8 JSP+mysql药品销售及管理系统设计与实现+用例图(10):http://www.youerw.com/jisuanji/lunwen_2034.html