库房出库管理系统
一、语言和环境
a) 实现语言
java
b) 环境要求
JDK6、myeclipse 、tomcat6、oracle
二、功能要求
1、使用SSH(struts2+spring+hibernate)实现库房出库管理,oracle做为后台数据库具体要求如下
进入应用首页,如图-l所示:
页面中“出库商品” 列表的数据来自数据库的商品表product,填充下拉列表时使用商品主键ID的值作为option的value,使用商品名称的值做显示文本,
点击“提交”按钮保存数据时,使用javascript对表单数据进行验证,要求所有表单均必填或必选,且数量必须大于0的整数,否则应给出相应提示参考
如图-2所示:
通过javascript的验证后,提交数据到服务器,服务器端按如下要求进行处理:
首先,检查所选商品的库存数量是否满足出库要求,如果库存量小于出库量不得进行出库操作,须返回首页提示用户库存不足,以及实际的库存数量。用户所填数据应回显在表单中,不能丢失、。如图-3所示:
如果库存大于或等于出库数量,在出库表takeout中添加一条出库记录,出库时间取系统当前时间,并对商品表product中该商品的库存数量进行修改以减少相应的库存。全部执行成功,提交事务,否则回滚。最后返回首页提示操作结果,如图-4所示
三、数据库设计
数据库表名及要求
表名 | product | 中文表名 | 商品表 | |||||
主键 | proid | |||||||
序号 | 字段名称 | 字段说明 | 类型 | 长度 | 属性 | 备注 | ||
1 | proid | 商品id | number | 10 | 主键 |
| ||
2 | productname | 商品名称 | Varchar2 | 50 |
|
| ||
3 | quantity | 库存 | number | 10 | 非空 |
|
表名 | takeout | 中文表名 | 新闻分类表 | |||||
主键 | id | |||||||
序号 | 字段名称 | 字段说明 | 类型 | 长度 | 属性 | 备注 | ||
1 | takeid | 记录ID | number | 10 | 主键 |
| ||
2 | quantity | 数量 | number | 10 | 非空 |
| ||
3 | outDate | 记录日期 | date |
| 非空 | 系统时间 | ||
4 | Handler | 经受人 | Varcahr | 50 |
|
| ||
5 | Proid | 商品ID | Number |
| 外键 |
|
四、具体要求及推荐实现步骤
1、建立数据库表,并且添加测试数据(至少3条)
2、创建web工程,命名为warehouse
3、为工程添加struts2、spring3、hibernate3的支持
4、正确配置struts2、spring、hibernate,并正确配置SSH的集成
5、创建hibernate的实体类和对应的映射文件
A、编写product和takeout表对应的持久化类和映射文件
B、为商品类和出库类配置单项多对一关系
6、创建dao接口及实现类,在dao类中使用HQL语句或者spring底层数据库对象实现相应操作,实现
A、查询所有商品
B、查询指定商品库存
C、添加出库记录
D、修改指定商品库存
7、创建service接口及其实现类,实现相应业务,并在类中加入dao的引用
8、创建action,在action中加入service的引用,并配置struts文件
9、创建并配置spring文件,对业务类对象需添加声明式事务支持。
10、新闻列表显示页面
A、按照图-1进行页面设计
B、使用javascript验证表单数据
C、按照要求提示信息和实现数据回显
11、调试运行成功后导出sql语句,其中包括表结构、序列、初始化数据、生成sql脚本文件与代码文件一同提交。若无数据库脚本,此项不得分。
五、注意事项
1、请注意页面美观,控件摆放整齐
2、请注意代码编写、命名符合规范、在代码中添加必要的注释
3、请注意操作数据库时进行必要的异常处理