《基于JAVA企业进销存管理系统毕业设计(含源文件)22284.docx》由会员分享,可在线阅读,更多相关《基于JAVA企业进销存管理系统毕业设计(含源文件)22284.docx(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、企业进销存存管理系统统学 院专 业班 级学 号姓 名指导教师教师职称年月日 55 摘要【摘要】进销存管理理系统是一一个基于IInterrnet的的应用系统统,它是一一个面对当当前的进销销存管理工工作基本还还处于手工工和半信息息自动化处处理状态而而应运而生生的一个基基于Intterneet的一个个完全信息息自动化的的系统,整整个系统从从符合操作作简便、界界面友好、灵灵活、实用用、安全的的要求出发发,完成进进货、销售售、库存管管理的全过过程。企业单位只只需具备访访问Intterneet的条件件即可在系系统发布的的站点上进进行进销存存的管理。在在图型化的的人机界面面中完成日日常的进销销存管理工工作.
2、一方方面摆脱了了时间和空空间的限制制,另一方方面有效的的解决的数数据共享的的问题。经过实际使使用证明,本本文所设计计的企业进进销存管理理系统可以以满足企业业进货、销销售管理方方面的需要要。【关键词】库库存 销售售 企业进进销存管理理系统目录摘要10 引言言11 系统统分析21.1 需求分析析21.2 可行性分分析22 总体体设计22.1 项目规划划22.2 系统功能能结构图33 系统统设计33.1 设计目标标33.2 开发及运运行环境43.3 数据库设设计44 JaavaBeean的编编写54.1 数据库操操作的JaavaBeean的编编写54.2 中文乱码码处理的JJavaBBean的的编写
3、74.3 客户基本本信息的JJavaBBean的的编写74.4 提交客户户信息的JJavaBBean的的编写84.5 查询、分分页JavvaBeaan的编写写(QueestSttringg.javva)94.6 显示系统统时间的JJavaBBean的的编写145 用户户登录模块块设计156 系统统首页设计计167 基础础信息管理理主要功能能模块设计计187.1 客户信息息管理设计计187.2 客户信息息查询设计计198 库存存管理主要要功能模块块设计228.1 商品入库库信息设计计238.2 商品价格格调整设计计26附录A 参考文献献附录B 数据表附录C 文件架构构图0 引言言随着中国电电子商
4、务、互互联网业务务的迅猛发发展,国内内许多企业业已跨入电电脑网络管管理时代,并并因此提高高了管理效效率和市场场竞争力。但但目前仍有有部分企业业还停留在在原始计账账管理阶段段。而随着着全球经济济信息化的的进程和WWTO的成成功实现,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。在进货、库库存、销售售环节中,由由于商品种种类繁多、业业务量大、库库
5、存管理复复杂,使用用手工操作作的工作量量很大,在在操作过程程中也很容容易出现各各种错误。而而采用计算算机管理则则可以大大大提高日常常工作的效效率,不仅仅将原来由由手工操作作的进货、出出货及销售售这一整套套流程用计计算机进行行全程管理理,而且消消除了手工工操作中可可能存在的的不确定因因素,达到到进销存管管理流程清清晰,从而而能够比较较彻底地贯贯彻经营者者的管理模模式。1 系统统分析1.1 需求分析析通过调查研研究,要求求系统满足足以下功能能:q 由于操作人人员的计算算机知识水水平有限,因因此要求系系统具有良良好的人机机界面。q 如果系统的的使用对象象较多,则则要求有较较好的权限限管理。q 方便的
6、数据据查询功能能,并支持持多条件查查询。q 在各种单据据中根据输输入的基础础数据自动动计算金额额,尽量减减少人工干干预。q 对客户或供供应商的往往来账目进进行有效管管理,绝不不存在假账账、漏账、差差账等情况况。q 通过计算机机,能够直直接“透视”仓库存储储情况。q 对某一时间间段内的某某种商品的的销售情况况按数量或或金额进行行升序或降降序排行。q 图表分析年年销售额。1.2 可行性分分析通过计算机机网络系统统对企业进进行全面的的管理,满满足了企业业的现代化化管理的要要求。q 经济性当前许多中中小型企业业都使用人人工管理方方式(即纸纸和笔)来来管理企业业的进销存存,这样的的管理方式式既困难又又浪
7、费时间间和成本,并并且容易出出现漏账、差差账的情况况,因此中中小企业应应该向大型型企业那样样采用先进进的管理方方式,提高高企业效率率、降低企企业运营成成本。q 技术性企业进销存存管理系统统从中小企企业的实际际出发,可可有效地管管理企业的的进销存情情况,并降降低企业运运营成本、及及时调整营营销策略、提提高库房的的利用率。2 总体体设计2.1 项目规划划企业进销存存管理系统统是一个典典型的数据据库开发应应用程序,由由基础信息息管理、库库存管理、商商品销售、查查询统计、往往来管理、系系统设置66部分组成成。q 基础信息管管理该模块主要要是对企业业的客户信信息、商品品信息、供供应商信息息进行有效效管理
8、,并并可实现按按不同条件件对这些数数据进行查查询。q 库存管理该模块主要要是对商品品的入库及及入库退货货信息进行行有效管理理,对商品品的价格进进行调整,同同时可按不不同条件查查询库存商商品。q 商品销售该模块主要要是对商品品的销售及及销售退货货信息进行行有效管理理。q 查询统计该模块主要要实现按不不同条件查查询商品的的入库信息息及销售信信息,并可可对某一时时间段内某某种商品的的销售情况况按数量或或金额进行行升序或降降序排行,同同时可对某某一年度的的销售额进进行图表分分析。q 往来管理该模块主要要实现对商商品的入库库结账、入入库退货结结账、销售售结账、销销售退货结结账信息进进行有效管管理,同时时
9、可实现销销售结账信信息及入库库结账信息息的查询操操作。q 系统设置访模块主要要实现对操操作员及操操作员密码码进行有效效管理。2.2 系统功能能结构图企业进销存存管理系统统的功能结结构如图11所示。图1 系系统功能结结构图3 系统统设计3.1 设计目标标本系统针对对中小型企企业进销存存管理现状状,通过网网络对企业业的进销存存进行有效效管理。本本系统主要要实现如下下目标:q 系统采用人人机对话方方式,界面面美观友好好,信息查查询灵活、方方便、快捷捷、准确,数数据存储安安全可靠。q 实现企业内内一些基础础信息的设设置及查询询。q 商品的入库库、入库退退货、销售售、销售退退货流程清清晰。q 数据计算自
10、自动完成,提提高工作效效率。q 与供应商和和客户之间间的账目清清晰。q 以图表形式式对年销售售额进行分分析。q 实现多条件件查询。q 可方便快捷捷地查询库库存信息,并并可对商品品价格进行行调整。q 对某一时间间段内的某某种商品按按照销售数数量或销售售金额进行行销售升序序排行或降降序排行。q 操作员可以以随时修改改自己的口口令。q 对用户输入入的数据,系系统进行严严格的数据据检验,尽尽可能排除除人为的错错误。q 系统最大限限度地实现现了易维护护性和易操操作性。q 系统运行稳稳定、安全全可靠。3.2 开发及运运行环境硬件平台:q CPU:PP41.88GHz。q 内存:2556MB以以上。软件平台
11、:q 操作系统:Winddows 20000。q 数据库:SSQL SServeer 20000。q 开发工具包包:JDKK Verrsionn1.4.2。q JSP服务务器:Toomcatt。q 浏览器:IIE5.00,推荐使使用IE66.0。q 分辨率:最最佳效果11024768像像素。3.3 数据库设设计本系统采用用SQL Servver 22000数数据库,系系统数据库库名称为ddb_shhoppiing。数数据库dbb_shooppinng中包含含17张表表。关于数数据库中的的数据表请请参见附录录B。4 JaavaBeean的编编写根据系统的的需求编写写需要的JJavaBBean。下
12、下面将给出出企业进销销存管理系系统中所需需要的JaavaBeean的编编写过程。4.1 数据库操操作的JaavaBeean的编编写数据库连接接的JavvaBeaan的编写写代码如下下:packaage ccom.mmingrri.dbbconnn;imporrt jaava.ssql.*;imporrt jaavax.namiing.*;imporrt jaavax.sql.DataaSourrce;publiic cllass DBCoonn pubblic stattic ssynchhroniized Connnectiion ggetCoonnecctionn() tthrowws E
13、xxcepttion ttry Conntextt iniitCtxx=neww javvax.nnaminng.InnitiaalConntextt(); /获获得JNDDI初始上上下文对象象/在JNNDI命名名空间jaava:ccomp/env段段里获得上上下文对象象 Conntextt envvCtx=(Conntextt)iniitCtxx.loookup(javva:coomp/eenv); DattaSouurce ds=(DataaSourrce)eenvCttx.loookupp(jddbc/mmingrri); /通过JNNDI名获获得数据源源对象 retturn ds.gg
14、etCoonnecctionn(); ccatchh(SQLLExceeptioon e) thrrow ee; ccatchh(NammingEExcepptionn e) thrrow ee; 数据库操作作的JavvaBeaan的编写写代码如下下:packaage ccom.mmingrri.dbbconnn;imporrt jaava.ssql.*;imporrt coom.miingrii.dbcconn.DBCoonn;publiic cllass DBReesultt priivatee Connnecttion con; pubblic DBRResullt() tthis.co
15、n=DBCoonn.ggetCoonnecctionn(); /* * 用于获得得执行SQQL语句的的ResuultSeet对象 */ pubblic ResuultSeet geetRessult(Striing ssql) ttry Staatemeent sstmt=con.creaateSttatemment(); RessultSSet rrs=sttmt.eexecuuteQuuery(sql); retturn rs; ccatchh(Excceptiion ee) rreturrn nuull; /* * 用于执行行SQL语语句没有返返回值 */ pubblic voidd d
16、oEExecuute(SStrinng sqql) ttry Staatemeent sstmt=con.creaateSttatemment(); stmmt.exxecutteQueery(ssql); catcch(Exxcepttion e) /* * 用于获得得执行SQQL语句的的PreppareddStattemennt(预处处理)对象象 */ ppubliic PrreparredSttatemment getPPrepaaredSStateementt(Strring sql) ttry PreepareedStaatemeent ppstmtt=conn.preepareeS
17、tattemennt(sqql); retturn pstmmt; ccatchh(Excceptiion ee) rreturrn nuull; /* * 关闭连接接 */ ppubliic vooid ccloseeCon() ttry thiis.coon.cllose(); catcch(Exxcepttion e) ee.priintSttackTTracee(); 4.2 中文乱码码处理的JJavaBBean的的编写在JSP开开发中,经经常出现乱乱码问题,我我们可以指指定编码方方式,以消消除乱码。packaage ccom.mmingrri.chhinesse;imporrt ja
18、ava.iio.*;publiic cllass ToChhinesse pubblic Striing ttranss(Strring chi) SStrinng reesultt=nulll; bbyte tempp; ttry temmp=chhi.geetByttes(iso-88599-1); ressult=new Striing(ttemp); ccatchh(UnssuppoorteddEncoodinggExceeptioon e) Sysstem.out.prinntln(e.tooStriing(); rreturrn reesultt; 4.3 客户基本本信息的JJav
19、aBBean的的编写这段代码用用来封装客客户的基本本信息,并并对每个属属性提供ssetXXXX()和和getXXXX()方法,来来对其进行行操作。packaage ccom.mmingrri.innfo;publiic cllass KhinnfoBeean priivatee Strring khnaame; /客户全全称 priivatee Strring khjcc; /客户户简称 priivatee Strring addrress; /地址址 priivatee Strring posttcodee; /邮政政编码 priivatee Strring tel; /电话话 priiva
20、tee Strring fax; /传真 priivatee Strring lxr; /联系人人 priivatee Strring lxrttel; /联系系人电话 priivatee Strring emaiil; /电子邮邮箱 priivatee Strring khyhh; /开户银行行 priivatee Strring yhzhh; /银行账号号 pubblic Striing ggetKhhnamee() rreturrn khhnamee; pubblic voidd settKhnaame(SStrinng khhnamee) tthis.khnaame = khnname
21、; /省略部部分代码4.4 提交客户户信息的JJavaBBean的的编写在填写完客客户基本信信息后,就就应该向数数据库中执执行插入操操作。这个个类中有两两个方法ssetKhhinfoo()和RRegisst()。其其中settKhinnfo(KKhinffoBeaan khhinfoo)方法是是用来设置置该类中的的属性khhinfoo,其值为为参数传递递来的KhhinfooBeann的对象。然然后执行预预处理语句句,并通过过预处理对对象psttmt的ssetSttringg()方法法来设置准准备要插入入数据库的的内容,最最后通过eexecuute()来执行插插入的操作作。具体代代码如下:pac
22、kaage ccom.mmingrri.innfo;imporrt coom.miingrii.dbcconn.DBReesultt;imporrt jaava.ssql.*;publiic cllass KhReegistt priivatee KhiinfoBBean khinnfo; DBRResullt rsst=neew DBBResuult(); pubblic voidd settKhinnfo(KKhinffoBeaan khhinfoo) tthis.khinnfo=kkhinffo; pubblic voidd reggist() thhrowss Excceptiion
23、SStrinng reeg=iinserrt innto ttb_cuustommer vvaluees(?,?,?,?,?,?,?,?,?,?,?); ttry PreepareedStaatemeent ppstmtt=rstt.gettPreppareddStattemennt(reeg); /创创建一个预预处理语句句,然后设设置他们的的参数 psttmt.ssetSttringg(1,kkhinffo.geetKhnname(); psttmt.ssetSttringg(2,kkhinffo.geetKhjjc(); psttmt.ssetSttringg(3,kkhinffo.gee
24、tAdddresss(); psttmt.ssetSttringg(4,kkhinffo.geetPosstcodde(); psttmt.ssetSttringg(5,kkhinffo.geetTell(); psttmt.ssetSttringg(6,kkhinffo.geetFaxx(); psttmt.ssetSttringg(7,kkhinffo.geetLxrr(); psttmt.ssetSttringg(8,kkhinffo.geetLxrrtel(); psttmt.ssetSttringg(9,kkhinffo.geetEmaail(); psttmt.ssetSttrin
25、gg(10,khinnfo.ggetKhhyh(); psttmt.ssetSttringg(11,khinnfo.ggetYhhzh(); /执执行更新操操作 psttmt.eexecuuteUppdatee(); ccatchh(Excceptiion ee) e.pprinttStacckTraace(); thrrow ee; 4.5 查询、分分页JavvaBeaan的编写写(QueestSttringg.javva)该系统中主主要的方法法分为两部部分:一部部分是根据据用户提交交的不同请请求调用不不用的方法法来获取SSQL语句句;另一部部分是用于于分页显示示。用于完完成分页显显示的方法
26、法有:q void setQQueryySql(Striing hhttpffile,Striing ppagess,Strring strCCountt):通过过参数传递递来设置BBean中中的属性。q void querrySqll(Strring counntSqll):执行行SQL语语句,获得得分页显示示时的各个个属性。q Strinng paageFoooterr():用用来动态的的给出一个个表单该表表单用来进进行分页和和统计页面面间的跳转转。这部分代码码是本系统统中查询部部分的骨架架,所有涉涉及到查询询操作的代代码部分全全都调用了了该Beaan 中相相应的方法法,并完成成了分页显显
27、示。代码码如下:packaage ccom.mmingrri.innfo;imporrt coom.miingrii.dbcconn.DBReesultt;imporrt jaava.ssql.*;imporrt jaava.iio.*;publiic cllass QuesstStrring priivatee intt currPagee; /当前前页数 priivatee intt maxxPagee; /最大页页数 priivatee intt maxxRowCCountt; /总记录数数(即从数数据库中查查出的所有有记录) priivatee intt paggeSizze=2; /
28、每页页要显示的的记录数 priivatee DBRResullt dbb; /记录集对对象 priivatee Strring httppFilee; /当当前地址栏栏的文件,即即具体的JJSP文件件 priivatee Strring cif; /选择择的查询字字段 priivatee Strring cciff; /选择择的查询运运算符 priivatee Strring qvallue; /查询询关键字 priivatee Strring counntSqll=nulll; /用来来存储seelectt couunt (*) 语句 priivatee Strring topSSql=nn
29、ull; /用来来存储 sselecct toop 2语句 priivatee Strring nowPPage=nulll; /初始化化当前页ccurPaage变量量,即获取取当前页的的具体页号号 priivatee Strring str_paraameteer; /在做做翻页时,传传递除paages以以外的其他他参数 priivatee Strring andoor; /查询的与与/或条件件 priivatee Strring sdatte; /查询起始始时间,即即从什么日日期开始查查询 priivatee Strring edatte; /查询结束束时间,即即到什么日日期结束 prii
30、vatee Strring ordeerby; /排序条件件,即按什什么排序 priivatee Strring paixxu; /排序方法法,即升序序或降序 pubblic QuesstStrring() /构构造方法,用用来设置ddb为一个个DBReesultt()对象象 ddb=neew DBBResuult(); pubblic int getCCurPaage() rreturrn cuurPagge; pubblic voidd settCurPPage(int curPPage) tthis.curPPage = cuurPagge; /省略了对对Beann中其他属属性设置的的部
31、分代码码 /* * 通过参数数传递来设设置Beaan中的属属性 */ pubblic voidd settQuerrySqll(Strring httppfilee,Strring pagees,Sttringg strrCounnt) tthis.nowPPage=pagees; /将将表单提交交过来的参参数pagges(第第几页)的的值传递给给变量noowPagge保存 tthis.httppFilee=htttpfille; /用用来动态设设置处理表表单请求的的JSP文文件 tthis.counntSqll=strrCounnt; /用来设设置执行sselecct coount(*)的S
32、QLL语句 ttry queerySqql(coountSSql); /调用quuerySSql方法法,并将参参数couuntSqql传递到到该方法中中 catcch(Exxcepttion e) e.pprinttStacckTraace(); /* * 执行SQQL语句,获获得分页显显示时的各各个属性 */ pubblic voidd queerySqql(Sttringg couuntSqql) tthrowws SQQLExcceptiion /在seetQueerySqql方法中中已经设置置了nowwPagee的值,其其值就是ppagess iif(thhis.nnowPaage=n
33、ulll) /如果果nowPPage的的值为空,也也就是传递递pagees的值为为空 thiis.cuurPagge=1; /那么就将将当前页的的值设为11; eelse thiis.cuurPagge=Inntegeer.paarseIInt(tthis.nowPPage); if(thiss.currPageetthis.maxPPage) /如果当当前页大于于总页数,则则当前页等等于总页数数 thiis.cuurPagge=thhis.mmaxPaage; /那那么当前页页就是最大大页 rrsCouunt.cclosee(); /关闭总记记录数的结结果集 /* * 一个字符符串,用来来动
34、态的给给出一个表表单 * 该表单用用来进行分分页和统计计页面间的的跳转 */ pubblic Striing ppageFFooteer() /创建一一个表单 SStrinng sttr = ; iint pprev = thhis.ccurPaage- 1; /向向前翻页,即即当前页减减1 iint nnext = thhis.ccurPaage +1; /向后后翻页,即即当前页加加1 sstr = strr + 总计计 + thhis.ggetMaaxRowwCounnt() + 条记录, + 【共 + thhis.ggetMaaxPagge()+ 页】; sstr = strr + 【
35、+ thiss.paggeSizze + 条/页】 当前第 + thiss.gettCurPPage() + 页 &nnbsp; ; iif(thhis.ccurPaage 1) strr = sstr + 首页页 ; eelse strr = sstr + 首首页 ; iif(thhis.ccurPaage 1) strr = sstr + 上一页 ; eelse strr = sstr + 上上一页 ; iif(thhis.ccurPaage thiis.maaxPagge) strr = sstr + 下一页 ; eelse strr = sstr + 下下一页 ; iif(thhis.mmaxPaage 1 & thhis.ccurPaage!= thiis.maaxPagge) strr = sstr + 尾页; eelse strr = sstr + 尾尾页; /在页面面跳转间设设置隐藏表表单,来保保存不同的的请求 sstr = strr + 转到页+ iinputt typpe =hiddden namee=eddate vall