1 绪
着社会济断进展企业面着种机遇挑战够信息化时代连续进展必需紧时代脚步着网络技术断进展 现代物流技术断更换代传统工记载办公方法已法满足企业需企业需动化仓库治理系统仓库企业必需慎重治理方货物企业根钱治理企业货物竞争剧烈社会中谋片天课题正理念开发功较完善根满足企业求仓库治理系统
11 系统开发背景
着计算机技术进展崭信息化世界已呈现眼前 处种类信息治理系统
商品企业根仓库企业保存商品方仓库企业格外重说成功企业必定会仓库仓库确定会先进仓库治理系统作支撑传统简洁静态仓库治理系统具备信息享功法保证货物正确进库库存掌握发货等问题已法确保企业资源高效利传统仓库治理系统存维护困难开发简单等缺点极铺张企业力物力已时代步伐说成功企业需现代仓库治理系统保证企业产品精细化治理保证化利企业资源
12 系统开发目
仓库全部企业行缺少局部企业想蓬勃进展治理仓库显格外重仓库中货物总断变动需仓库中货物增减状况进展记录传统工记录方法存着问题方信
息安全行性低查询效率低等想断进展企业说种工记录方式必需淘汰
着计算机技术断进展计算机已格外普遍企业拥计算机计算机库存信息进展治理着工记录法较优点方查询快捷信息安全性高添加删便利等
基缘开发仓库治理系统系统够保证货物正确进库库存掌握发货系统维护简洁需动太力物力效帮助企业治理仓库
13 系统开发台
系统承受BS三层架构系统MyEclipse开发工具基J2EE台承受MVC开发模式JSPStruts技术选SQL Server 2023作系统数库台
131 MyEclipse
全名 MyEclipse Enterprise Workbench 简称 MyEclipse MyEclipse 企业级工作台 Eclipse IDE 扩展利极提高数库 J2EE 开发公布应程序效劳器整合方面工作效率功丰富 J2EE 集成开发环境包括完备编码功调试功测试功公布功等完整支持 HTMLStrutsJSPCSSJavascriptSQLHibernate 等框架
132 JSP 技术
JSP 技术流 Web 开发技术中广泛种 Sun 公司推出款基 Java 语言 Web 开发技术 Sun 公司提倡公司参 JSP 开发中 JSP 成动态网页技术标准JSP 技术仅继承 Java 语言强功便利开发出先进安全跨台电子商务系统拥 Java Servlet 稳定性 Servlet 供 APIJSP 目前较热门款 Web 网页开发技术开发出系统具良扩性性较高
JSP 技术Java 编程语言编写类XML tags scriptlets 封装动态网页产生处理规律JSP 技术网页设计显示网页规律分开设计成支持重基组件功极提高基Web 应程序开发效率访问 JSP 页面恳求发送 Web 效劳器时首先中程序段进展执行然执行结果连 JSP 文件中 HTML 代码起返回客户插入 Java 程序段进展数库重定网页等操作实现建立动态网页需功
JSP Java Servlet 样效劳器端执行通常返回客户端HTML 文客户端扫瞄器扫瞄[2]
133 Struts2
Struts2 框架 Struts1 WebWork 框架根底开发出吸取 2 框架优点Struts1 框架WebWork 框架 2 完全框架然 Struts2 感觉似 Struts1 升级版Struts1 相设计理念着质体系构造运行流程 Struts2 WebWork 格外相 Struts2 理解成继承 WebWork 血统
Struts2 框架致核心掌握器业务掌握器户实现业务规律组件 3 局部组成中FilterDispatcher 充着核心掌握器该掌握器作 Filter 运行 Web 应中负责拦截户全部恳求户软件时假设恳求终action结尾该恳求转入 Struts2 框架中进展处理户实现 Action 类实例实业务掌握器Action 类中般包含execute〔〕方法该方法返回值般字符串般说规律视图名总实际转视图资源规律视图名相应然Struts2 核心掌握器业务掌握器方面户供帮助业务规律组件方面确没供太帮助业务规律组件实表现层框架实际开发程中掌握器需猎取业务规律组件时通常通Factory 模式猎取需业务规律组件实例[3]
134 Microsoft SQL Server2023
Microsoft SQL Server 2023 款微软公司开发数库产品拥分类根产品规格转变部包含效劳般企业版版移动版搜寻引擎类等版中企业版相版原说功较齐全确 WindowXP 安装点较圆满Microsoft SQL Server 2023 作程序需数进展存储分析查询修改等操作
Microsoft SQL Server 2023 简化前版数库中治理优化功极提高线商务应程序成功部署需牢性伸缩性中日志传送线备份障切换群集等功提高牢性特性32 颗 CPU 64 GB RAM 支持程度改进伸缩性方面通数文件尺寸动治理基导数库拷贝动存治理简化障切换群集安装治理等系列
动优化改进治理特性户够快速部署效治理线商务应程序Microsoft SQL Server 供数库完整性保护 SQL Server 中
实现数库完整性约束通检查〔Check〕约束默认值(Default)约束户定义数类型规章(Rule)存储程(Stored procedure)触发器(Trigger)等技术实现数库中数达全正确提高数库系统性
2 系统需求分析
需求分析系统开发首步骤直接影响系统整体性功关键步 骤系统需求分析系统行性性功进展具体分析合理需求分析会系统开发环节消灭错误走弯路导致系统开发时间长 效率低系统质量受影响
21 运行环境分析
硬件需求
CPU:1G 存:512M 硬盘:1G
系统环境
操作系统:Window XPWindow2023
数库:SQL Server 2023
开发工具:MyEclipse 开发语言:Java
22 功模块分析
(1) 功分析
系统具仓库治理系统根功
系统分两局部户局部:户户名密码登录系统进展操作系统局部:局部包括商品入库出库操作库货物查询等功
(2) 模块分析
登录模块:仓库治理员进入系统必需登录
添加商品信息模块:入库商品进入仓库前必需仓库治理员进展添加
入库模块:仓库中已商品进展操作入库数量变化商品类治理模块:商品类区分种商品商品分类治理
23 系统目分析
仓储物流企业整供链中起关重作假设正确保证货物入库库存货物发货导致企业治理费增加仓库治理员工作时间会延长工作效率高
开发系统目帮助仓库治理员提高工作效率降低工作时间 实现仓库货物治理系统化标准化动化
24 性分析
系统操作简洁界面美观系统仓库治理员需握太专业学问便娴熟
系统够快速仓库治理员商品信息操作〔包括商品入库出库商品信息修改删商品类添加删等〕显示应页面中达时操作时显示效果
系统功完善包括般仓库治理系统全部功完全够满足户需
3 系统设计
系统设计系统开发中重环节章介绍基 BS 架构仓库治理系统总体构造系统架构数库设计总体构造介绍模块间关系数库设计说明白表建立数间关系
31 总体构造
系统包含仓库治理系统需根功够满足般户仓库治理需效提高仓库治理员工作效率系统需求分析系统体分模块:登录模块添加商品信息模块出库模块入库模块商品类治理模块中模块子模块总体构造图 31 示
商
品信息查询
商
品入库
入库商品治理
商
品类治理
出
库商品信息查询
商品出库
删信息
添加
删
32 系统架构
图 31 总体构造图
仓库治理系统
登入
系统基 BS 构造开发BS 构造分表示层业务层数层三层中:
(1) 表示层:作户接口层负责户整系统交互利JSP 技术实现
(2) 业务层:作业务规律封装层承受Struts2 框架页面承受户恳求数层取数进展处理终处理结果表示层中显示出
(3) 数层:作数存储层承受SQL Server 2023 数库进展数治理
33 数库设计
331 概念构造设计
概念设计系统需求动身数流形式设计象表达成完整抽象实体涉模块部细节描述工具 ER 图图 32 示
出库
入库
商
品名称
商
品号码
户名
M
商
治理员
治理
货物
N
品
类
密 码
修改
删
添加
生
产厂家
商
品数量
图 32 系统ER 图
332 规律构造设计
规律构造描述方法根表反映系统中涉数规律构造系统中数信息特点数概念模型转换关系模型
(1) 户信息关系模式中户名关系键户〔户 ID户名密码〕
(2) 商品信息关系模式中商品号码关系键
商品〔商品号码商品名生产产商品数量类 ID〕
(3) 商品类信息关系模式中类 ID 关系键商品类〔类 ID类名〕
(4) 出库商品信息关系模式中商品号码关系键
出库商品〔商品号码商品名生产产出库数量类 ID〕
表 31 商品信息表〔kehu〕
列名comID comname comfrom comnumber sortID
数类型Varchar〔50〕 Varchar〔50〕 Varchar〔50〕 Char〔10〕 int〔4〕
否空NOT NULL NULL NULL NULL NULL
说明 商品 ID 商品名称生产厂家商品数量
商品类ID
表 32 商品出库信息表〔outkehu〕
列名comID comname comfrom comnumber sortID
数类型Varchar〔50〕 Varchar〔50〕 Varchar〔50〕 Char〔10〕 int〔4〕
否空NOT NULL NULL NULL NULL NULL
说明 商品 ID 商品名称生产厂家商品数量
商品类ID
表 33 仓库治理员信息表〔abc〕
列名userID username password
数类型char〔10〕 char〔10〕 char〔10〕
否空NOT NULL NULL NULL
说明 治理员ID 治理员姓名
密码
表 34 商品类治理信息表〔sort〕
列名sortID sortName
数类型Int(4) Char(10)
否空NOT NULL NULL
说明
商品类ID 商品类名称
333 物理构造设计
系统承受 Microsoft SQL Server 2023 数库系统系统供良数库治理功治理商品数
数库名 fmw表名分kehuabcoutkehusort数备份恢复承受数库系统身供数导入导出工具完成形成相应数文件中数文件名 fmw_DataMDF日志文件名 fmw_LogLDF
4 系统实现
该系统实现仓库治理系统根功包括商品入库出库商品信息修改删商品类添加删户(仓库治理员)登录进入系统界面界面仓库治理员系统界面进展操作
41 数库连接页面显示
411 数库连接
系统数库连接方式包括数库中信息进展添加删修改封装名DBOperjava 文件中便仓库治理员计算机运行系统时 数库进展必操作具体代码
import javasql*
public class DBOper { public DBOper
{
try{
ClassforName(commicrosoftjdbcsqlserverSQLServerDriver)
}catch(ClassNotFoundException e){ }
}
private Connection getConnection{ Connection conn null
try{ connDriverManagergetConnection(jdbcsqlserverlocalhost1433Data
baseNamefmw sa sa) 填写相关数库名数库户名密码Statement stmtconncreateStatement
}catch(SQLException e){ Systemoutprintln(egetMessage)
}
return conn
}
public ResultSet executeQuery(String sql)
{
ResultSet rsnull try{
Connection connthisgetConnection Statement stmtconncreateStatement rsstmtexecuteQuery(sql)
}catch(SQLException e){ Systemoutprintln(egetMessage)
}
return rs
}
执行InsertUpdateDelete语句SQL DDL语句public int executeUpdate(String sql){
int num 0 try{
Connection connthisgetConnection 初始化数库连接Statement stmtconncreateStatement 执行连接
num stmtexecuteUpdate(sql) 执行sql操作
}catch(SQLException e){
Systemout println(egetMessage)
}
return num
}
关闭连接
private void closeConn(Connection conn){ if(null conn){
try {
connclose
} catch (SQLException e) { eprintStackTrace
}
}
}
关闭连接
private void closeStam(Statement stmt){ if(null stmt){
try {
stmtclose
} catch (SQLException e) { eprintStackTrace
}
}
}
}
412 页面显示
系统页面显示承受分页显示般状况仓库中商品补种商品信息分开显示出需分页查询功具体代码
public List
try {
if (thisgetConnectionnull && Size>0 && Now>0) { pstmt thisgetConnectionprepareStatement(
select * from kehu order by comID limit +(Now*SizeSize)++Size
) 商品ID标准查询数表kehu中商品信息rs pstmtexecuteQuery
while (rsnext) { kehu new Kehu
kehusetComID (rsgetInt(1)) kehusetComname (rsgetString(2)) kehusetComfrom (rsgetString(3)) kehusetComnumber (rsgetString(4)) kehusetSortID (rsgetString(5)) listadd (kehu)
}
}
} catch(SQLException e) { eprintStackTrace
}
return list
}
42 登录模块
系统单户系统仓库治理员户名密码登入系统进入界面系统进展操作登录界面设计图 41 示
图41 户登录界面
仓库治理员登录系统必需输入正确户名密码输入户名者密码错误时会消灭登录失败状况实现推断登录员户名密码否错误功代码
public String execute throws Exception{ DBOper dbOpernew DBOper
String sqlselect * from abc where username+username+ and password+password+ 查询数表abc中否户名密码
ResultSet rsdbOperexecuteQuery(sql) Systemout println(sql) if(rsnext){
return main
}
else return error 查询结果假设返回main没返回error两返回值应两JSP页面
}
43 界面模块
仓库治理员正确户名密码登录进系统直接进入界面界面子功界面超链接选项包括商品信息查询商品入库商品入库治理商品类治理商品出库信息查询仓库治理员完成工作选择退出界面图 42 示
图42 应界面
44 商品信息查询模块
模块功商品信息查询仓库治理员进入该页面模块界面中查询全部商品信息关商品出库修改商品信息操作超链接选项界面图43示
图43 商品信息界面
图中仓库治理员全部商品信息action包中ShowGoodsActionjava类实现ShowGoodsActionjava类作创立链表显示商品信息放入链表中具体代码: ShowGoodsAcitonjava
public class ShowGoodsAction {
public String execute throws Exception{ DBOper db new DBOper
ResultSet rs dbexecuteQuery(select * from kehu ) 查询kehu
表
ArrayList listGoods new ArrayList 创立名listGoods链
表
while (rsnext){
Goods goods new Goods goodssetComID(rsgetString(1)) goodssetComname(rsgetString(2)) goodssetComnumber(rsgetString(4)) goodssetSortID(rsgetString(5)) goodssetComfrom(rsgetString(3))
listGoodsadd(goods) 取出商品信息放listGoods链表中
}
ActionContext actionContext ActionContextgetContext
Map map actionContextgetApplication
mapput(listGoods listGoods) 链表里容放map象里
return success
}
441 商品出库
仓库治理员需库商品进展出库操作时需商品查询界面相应
商品信息点击出库操作选项点击出库选项便进入商品出库操作界面
界面图 44 示
图44 商品出库界面
仓库治理员点击确定页面会仓库治理员输入数量数库中该商品数量进展删减完成该功需代码
public class DeleteWaresAction { private String comID
private String comnumber1
public String execute throws Exception{ DBOper dbOpernew DBOper
String sqlupdate kehu set comnumbercomnumber +comnumber1+ where comID+comID+ 商品ID条件该商品原数量根底 减输入数量
int numdbOperexecuteUpdate(sql) Systemout println(sql) if(num0){
return success
}
else return error
}
public String getComID {
return comID
}
public void setComID(String comID) { this ID comID
}
… …
}
442 商品信息修改
仓库治理员需现仓库中商品信息进展修改时需商品信息查询界面相应商品信息点击修改操作选项修改选项超链接触发 action仓库治理员选行商品信息显示出图 45 示
图45 商品信息修改界面
图中页面显示修改某行商品全部信息直接方框进展修改完成功代码
public class Modify2Action {
private
String
comID
private
String
comname1
private
String
comfrom1
private
String
comnumber1
public String execute throws Exception{ DBOper dbOpernew DBOper
String sqlupdate kehu set comname+comname1+
comfrom+comfrom1+ comnumber+comnumber1+where comID+comID+
商品ID标记换商品信息商品ID键换int numdbOperexecuteUpdate(sql)
Systemout println(sql) if(num0){
return success
}
else return error
}
public String getComID { return comID
}
public void setComID(String comID) { this ID comID
}
… …
}
45 商品入库模块
仓库中已货物进入仓库时仓库治理员界面商品入库操作选项进入商品入库界面界面中仓库治理员现商品全部信息相应商品信息面点击入库操作选项进展商品入库操作该界面图 46 示
图46 商品入库界面
图中商品信息显示方法代码参44商品信息查询界面
451 商品入库
点击图中入库操作选项进入商品入库操作界面界面仓库治理员需输入入库该商品数量该界面图47示
图47 商品入库操作界面
仓库治理员输入数量点击确定完成商品入库操作完成该功代码参完成图43功代码前屡次提点击操作选项显示某商品全部信息操作功实现功代码
public class ModifyAction { String comID
public String execute throws Exception{
Goods goodsnew Goods DBOper db new DBOper
String sqlselect * from kehu where comID+comID+ 数库中查询选商品ID商品信息
Systemoutprintln(sql)
ResultSet rs dbexecuteQuery(sql)
ArrayList listGoods1 new ArrayList 创立链表while (rsnext){
goodssetComID(rsgetString(1)) goodssetComname(rsgetString(2)) goodssetComnumber(rsgetString(4)) goodssetSortID(rsgetString(5)) goodssetComfrom(rsgetString(3)) listGoods1add(goods)
}
Map request (Map)ActionContextgetContextget(request)
requestput(listGoods1 listGoods1) 链表里容放request 象里网页够取出
return success
}
public String getComID {
return comID
}
public void setComID(String comID) {
this ID comID
}
}
46 商品入库治理模块
商品进入仓库中时仓库治理员需点击界面商品入库治理
选项进展添加商品信息操作程中商品类选择连接着sort
数表拉框选择入库商品信息填写完毕点击确定入
库商品信息添加治理商品信息数表kehu中界面图48示
图48 商品入库操作界面
点击确定仓库治理员输入入库商品信息保存数库中功实现具体代码
import javasqlResultSet import javautilMap import adoDBOper
import comopensymphonyxwork2* public class AddAction {
private
String
comIDnull
private
String
comnamenull
private
String
comfromnull
private
String
comnumbernull
private int sortID初始化商品信息public String execute throws Exception{
DBOper dbOpernew DBOper实例化DBOper
String sqlinsert into kehu (comIDcomnamecomfromcomnumbersortID) values (+comID+ + +comname++ +comfrom++ +comnumber++ +sortID+) 填写信息保存kehu数表中
int numdbOperexecuteUpdate(sql) if(num0){
return success2
}
else return error
}
public String getComID { return comID
}
public void setComID(String comID) { this ID comID
}
… …
}
47 商品类治理模块
文46章商品入库治理模块中已提商品类选择连接着sort 数表拉框选择必定治理着商品类界面界面图49示
图49 商品类治理界面
图见商品类治理添加删两方面点击图增加商品类 选项进展商品类添加操作操作实现界面参文45章图46商品入库治理点击删商品类选项进展商品类删操作界面中仓库治理员现全部商品类ID名称点击相应商品类删选项进展商品类删界面图410示
图410 删商品类界面
实现删操作代码文48章中图410删商品出库信息相参代码文提添加商品信息时商品类拉框形式选择拉框代码