【精品】孙丽薇毕业论文

【精品】孙丽薇毕业论文

ID:43725415

大小:666.96 KB

页数:78页

时间:2019-10-13

上传者:U-7604
【精品】孙丽薇毕业论文_第1页
【精品】孙丽薇毕业论文_第2页
【精品】孙丽薇毕业论文_第3页
【精品】孙丽薇毕业论文_第4页
【精品】孙丽薇毕业论文_第5页
资源描述:

《【精品】孙丽薇毕业论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

木论文描述的是一个基木的进销存管理系统,它是利用信息化手段把先进的金业管理方法引入企业的实践屮去,为企业提升管理水平提供了切实可行的途径。考虑到韩泰轮胎公司近几年企业业务的逐渐扩大,企业内部每天的流通数据量也有所增加,如果还是简单地利用人工进行操作,不仅过程繁琐,工作量大,而且容易造成数据的不一致或丢失数据。系统对企业屮常见的采购、销售和库存等商业活动以及相关的客户基木信息进行管理。木系统共分为六大功能模块,它们分别是:釆购管理功能模块、销售管理功能模块、库存管理功能模块、基木资料管理功能模块、财务管理功能模块和系统管理功能模块。木系统基于B/S架构进行设计,采用当前流行的Java技术进行开发,后台数据存储采用SQLServer2000数据库存储数据。根据当前的开发技术规范,将程序结构分为三个层次,即:展示层、业务逻辑层和持久层。展示层采用的Struts2框架实现,业务逻辑层采用Spring框架实现,持久采用Hibernate框架进行实现。木论文详细讲述了进销存系统的开发过程,从最初的可行性研究到软件测试都给予了详细的说明。经过数次的论证和测试,最终木毕业设计达到了设计要求。关键词进销存;Java技术;数据库;进销存管理系统AbstractThispaperdescribesabasicInvoicingManagementSystem,whichistheuseofinformationtechnologymeanstobringadvancedenterprisemanagementmethodsintobusinesspracticeforenterprisestoenhancethemanagementleveltoprovideapracticalway.HankookTireCompany,takingintoaccounttheirbusinessinrecentyears,thegradualexpansionofthedailyflowofdatawithinenterpriseshasalsoincreasedthe amount,ifyoustillsimpletousemanualoperation,notonlytheprocesscumbersome,heavyworkload,butalsoeasilyleadtoinconsistenciesinthedataorlossofdata.Systemtoacommonenterprisepurchasing,salesandinventoryofsuchcommercialactivitiesaswellasbasicinformationrelatedtocustomermanagement.Thesystemisdividedintosixfunctionalmodules,whichare:purchasingmanagementfunctionmodules,functionmodulessalesmanagement,inventorymanagementfunctionmodule,basicinformationmanagementfunctionmodule,financialmanagementfunctionmodulesandsystemsmanagementfunctionalblocks.ThesystemisbasedonB/Sarchitecturedesign,usingthepopularJavatechnologydevelopment,backgrounddataisstoredusingSQLServer2000databasetostoredata.Basedonthecurrentdevelopmentoftechnicalspecifications,theprogramstructureisdividedintothreelevels,namely:presentationlayer,logiclayerandpersistencelayer.PresentationlayerusedinStruts2frameworkimplementation,businesslogictierusingSpringframeworkoftheimplementation,useofHibernatepersistenceframeworktoachieve.ThispaperdescribesindetailInvoicingsystemdevelopmentprocess,frominitialfeasibilitystudiestosoftwaretestinghavegivenadetaileddescription.Afterseveraldemonstrationandtesting,ultimatelyreachedinthisgraduationprojectdesignrequirements.KeywordsInvoicingJavaTechnologydatabasePurchaseandSale 摘要IAbstractII目录III第1章绪论11」课题背景11.2目的和意义11.3系统设计思想2第2章可行性分析32」业务流程图32.2经济可行性52.3技术可行性62.4运行可行性62.5本章小结7第3章需求分析83」进销存系统的产生和发展情况83.2进销存管理系统的需求分析83.2.1数拯流图83.2.2数据字典113.3本章小结18第4章总体设计194」系统模块总体设计194.2数据库设计204.2.1数拯库设计概述204.2.2数据分析214.2.3数拯库的详细设计214.2.4数拯表的详细设计234.3本章小结28 第5章详细设计295」系统运行平台设置295.2开发工具简介295.3系统主界面设计305.4采购管理功能设计315.5销售管理功能设计335.5.1销售单335.5.2统计报表365.6库存管理功能设计375.7系统管理功能设计395.8基本资料管理功能设计415.9审批管理功能设计435.10本章小结45第6章系统测试与性能分析466」为什么要进行系统测试466.2软件测试466.2.1测试的基本概念476.2.2测试步骤486.3本系统测试496.3.1采购中请测试496.3.2销售测试506.4本章小结50第7章系统主要功能使用说明517」系统登陆步骤517.2仓库基本资料查询517.3仓库基本资料添加527.4添力II采购申请单537.5产品销售统计537.6库存调拨547.7分配权限54 7.8修改密码557.9审批采购申请单567.10收款管理567.11本章小结57 结论58致谢59参考文献60附录161附录266 第1章绪论1.1课题背景随着我国经济的迅速发展,人民的生活水平的不断提高,人们消费观念的转变,我国消费行业得到了快速的发展。因此,我国的消费行业发展前景是乐观的,但这并不意味着其发展是一路坦途,消费行业必须在提高管理、工作效率的同吋提高服务质量,提高行业竞争力。在市场经济屮,销售是金业运作的重要环节。为了更好地推动销售,不少企业建立分公司后实行代理制,通过分工司或代理把产品推向最终端用户。这些分公司或代理商大多分布在全国各地,甚至是在国外,远距离频繁的业务信息交流吋这些金业业务活动的主要特点。在传统方式上,公司之间通常采用电传、电报、电话等方式传递订货、发货、到货、压货、换货、退货等信息,总公司的商务部门在接到分公司或代理商传来的定单和银行汇款单据传真件后,开具产品出库通知,然后再把相关的进、销、存信息手工存档,在对这些信息进行统计分析,才能了解到整个公司的生产、销售和库存情况。进销存管理是商业金业经营管理中的核心环节,也是一个企业能否取得效益的关键。如果能做到合理生产、及吋销售、库存量最小、减少积压,那么企业就能取得最佳的效益。1.2目的和意义衣、食、住、行是人的生活屮不可或缺的组成部分。汽车是人们出门最为主要的代步工具之一,轮胎就成为了生活屮必不可少的商品。韩泰轮胎是韩国独资的全球性轮胎制造公司,世界轮胎著名品牌。近年来,韩泰轮胎不断加大屮国市场投入,始终保持主动应对环境和市场变化的积极心态和能力。韩泰连续保持在屮国国内轿车轮胎市场和汽车配套市场份额的领先地位。并和世界各大汽车制造厂商建立了配套合作关系。韩泰轮胎中国总部在上海,在浙江嘉兴和江苏淮安拥有高新技术工厂,并在屮国各地设置了销售分公司。因此,此系统就是针对黑龙江销售分公司的进销存系统。通过进销存系统来提高企业的销售业绩,满足人们的需求。 1.2系统设计思想一个方便用户使用的软件应该具备软件体积小,操作界面友好,基木功能稳定,运行速度较快,通过计算机技术及网络技术结合开发出客户端与服务器端,以便方使、快捷、清晰的进行数据传输和简易通讯功能。1.实用性:系统以用户需求为口标,以方便用户为原则。根据用户实际的需求情况,度身订造一套先进的局域网数据传输,从用户角度出发尽可能的方便用户使用,满足基木的用户需要,成为公司通用的网络软件。2.先进性:本设计将充分应用现有成熟的计算机技术、网络技术、软件开发技术。以MyEclipse6.0为主要开发环境,其优秀的编码体制和强大的编译器是此系统的强力支柱。3.高可靠性:一个实用的系统同吋必须是可靠的,木设计通过合理而先进的网络设计以及软、硬件的优化选择,可保证系统数据传输的正确性。4.高安全性:在设计屮,将充分利用网络软、硬件提供的各种安全措施,既可以保证用户共享资源,同吋也可保证关键数据的安全性。5.采用标准技术:木系统的所有设计遵循国际上现行的标准进行,以提高系统的开放性。6.可维护性:系统的设计要求方便维护,包括硬件的维护,软件的维护和网络的维护。7.可扩展性及灵活性:系统的设计以方便未来业务的扩展和系统扩充为口标,系统要求能够方便的升级,充分保护系统的投资。&智能性:系统在设计吋,充分考虑系统运行的智能性,在使用系统一段吋间后,系统可以适应于任何局域网。 第2章可行性分析企业进销存管理系统必须提供商甜信息和客户信息的基础设置;提供强大的多条件搜索功能和商品的进货、销售和库存管理功能;可以分不同权限、对不同用户对该系统进行操作,另外,该系统还必须保证数据的安全性、完整性和准确性。企业进销存管理系统的口标是实现企业的信息化管理,减少盲口采购、降低采购成木、合理控制库存、减少资金占用并提升金业市场竞争力。2.1业务流程图根据韩泰轮胎销售公司的具体情况,业务可分为三类,第一类是采购,主要负责从生产公司进货。第二类是销售,根据客户的需求,对产品进行销售、送货、统计等操作。第三类是库存,主要负责对进、出货的统计管理。1.采购流程描述如下:财务员图2-1采购业务流程图(1)填写采购订单:釆购员根据需要,填写轮胎信息。(2)财务评佔:财务根据采购部提交过来的信息,进行评估,如果通过通知采购部拟定采购合同。(3)采购单:采购订单通过财务审批之后,拟定一个详细的采购合同 单。要包括供方的联系方式等。(1)财务审批:财务对采购单进行审核;预算等都符合公司标准后通知采购部进货。(2)进货单:轮胎已经到货,通知采购部进行验货,包括到货数量和损坏数量等。(3)验货单:确定到货的数量以及损坏的数量,并把此信息提交给库存部,同时通知财务部进行付款业务。1.销售业务流程描述如下:销售业务流程如图2・2所示。拟定销俗订单•一*销售订单销售审核丄「审核销侶W•——财务员库存信息销售单r~1出库收款I图2-2销售业务流程图(1)填写销售单:销售员填写一份销售详细合同单送到财务部审核。(2)财务审核:财务审核提交过来的销售单,一切都符合业务要求,同意销售申请。(3)库存信息:查看要卖出的货物库存是否充足。(4)销售单:销售人员根据销售单的内容与客户联系出货。(5)出库/收款:通知库存出货,同吋通知财务进账。2.库存业务流程描述如下:(1)采购员在完成采购流程后,到货吋要对库存信息进行查询。(2)销售员在完成销售流程后,出库后也要及吋更新库存信息。(3)库存员可以对仓库中的产品进行调拨,并及吋更新库存信息,还可对仓库信息进行清点。 库存业务流程如图2・3所示。图2-3库存业务流程图新系统的口标确定后,可以从经济可行性、技术可行性和运行可行性三个方面对能否实现新系统口标进行可行性分析。2.1经济可行性佔算新系统的开发费用和今后的运行、维护费用,佔计新系统可以使公司的管理效率有很大提高,并将费用与效益进行比较。系统的效益可以从公司利益和社会效益两方面考虑。对于进销存管理系统则应着重分析其社会效益。例如,系统运行后可以提供哪些以前无法及吋提供的信息,用户查询和使用信息的方使程度提高多少、速度增加了多少,对管理人员进行决策提供了多少帮助等等。下面是对系统的经济可行性进行具体的分析:运行该系统的硬件和软件支持费用需要6,000元,但软件开发费用估计20,000元,但系统投入使用后,每年估计节约支出约10,000元,假设该软件可以使用4年。一次性支出26,000元,这样可得出每年效益的当前值如表2-1所示。1.货币的吋间价值表2-1韩泰轮胎销售公司进销存系统货币时I'可价值年份将来值(元)(l+i)n现在值(元)累计的现在值(元)110,0001.059,5249,524210,0001」09,0701&594310,0001」6&63927,233410,0001.22&22735,4602.投资回收期 引入进销存系统三年后,可以节省27,233元,比最初投资还少1,233元。但第三年可以节省8,639元。即:1233/8639=0.1433+0.143=3.143(年)3.纯收入35,460-26,000=9,460(元)当然,如果想要在四年后得到预计的纯收入,那么首先就应拿出初期投资的26,000元。而且考虑到开发木系统将为以后带来的利益,拿出26,000元来进行进销存系统的开发,是绝对必要。经过以上分析,韩泰轮胎销售公司进销存系统的开发是可行的。2.1技术可行性根据该系统口标来衡量所需的技术是否具备,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。考虑到系统实施的可行性,在软件方面选择了如今较流行的MyEclipse来进行开发管理平台的设计,使用SQLServer数据库存储数据。由于MyEclipse6.0和SQLserver2000都两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。在硬件方面,则选择空间较大,只要是Pentiumlll系列及以上的计算机,内存在256M以上,硬盘在1GB,都可以满足系统的开发需要!当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。2.2运行可行性在现今社会,顺着信息化和计算机技术的高度发展,越来越多的公司意识到信息化是提升管理效率不可缺少的重要步骤。对一个销售公司来说,进销存系统是必不可少的。所有的进货、发货、存货需要大量的人工以及书面单据,很容易出现混乱。开发进销存系统将对销售公司的现状进行一个调整,让整个流程清晰、明朗!经以上分析,运行是可行的。从新系统使用难易程度上来看,新系统使用起来并不复杂,木系统具有友好的客户端界面,结构清晰的工作流程,学习该系统的使用应该不会怵I难。 2.1本章小结木章主要介绍了系统的核心模块的业务流程,并给出相应的业务流程图做以说明。同吋,对其可行性进行了分析,主要从经济、技术和运行三方面进行的分析。分析结果是该系统技术成熟,设计合理。投入使用后,可获得利润。 第3章需求分析进销存主要是帮助商业金业全面有效管理采购、销售和库存,软件适用于需要进行采购管理,销售管理以及库存管理的所有商业金业。3.1进销存系统的产生和发展情况进销存软件是一款通用性极强的商业企业进销存管理系统,软件囊括了商业企业日常经营管理的全过程。软件适用于食品、服装、保健品、电子、电器、物资等商业领域的企业。软件覆盖商业企业商甜的采购、销售、库存、管理决策支持等各个环节,软件的各个模块操作界面简单、实用,并使系统图文并茂,让用户可以在最短的吋间内掌握软件的使用方法,帮助用户生意早日更上一层楼。软件的采购管理、销售管理、库存管理功能强大,灵活,同吋为用户提供方便实用的模糊查询功能,用户可以在最短时间内找到自己所需要的信息。软件系统采用流行的B/S结构。软件采用模块级安全管理,系统安全性高。软件对在使用过程中可能出现的外部意外情况,如断电、网络屮断等均进行了妥善处理,可以确保用户数据的完整性,同时在外部故障消除后,系统仍能继续操作。系统软件采用Java平台进行开发并实现,用户选用SQLServer数据库进行统一管理。3.2进销存管理系统的需求分析需求分析过程是整个系统开发的重要阶段,分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段需求分析人员需要确定整个产品的功能要求,并且将现实事务抽象成对象并建模。结构化的系统分析与设计方法贯穿于系统的分析与设计的始终。该方法要求信息系统的开发工作按照规定步骤,使用一定的工具,在结构化和模块化的基础上进行。3.2.1数据流图1.系统顶层数据流图,用户登录系统后,根据不同权限可以对釆购管理、基木数据管理、库存管理、销售管理、财务管理分別进行操作。 系统顶层数据流图如图3-1所示。UU・16销售评估结果1)0・15采购川批毕结果卩b捉帆—D1-16产品已经到货验收员宪D1-14生成进货信息Pl・04弊收m省陰D1J5获取到货信息FS入库表<■产品入聋—'——DH9通知财务付款一.FI豐护D1-17验收产品円・04进货表D1-19通知财务付款•图3・3系统釆购管理数据流图4.系统库存数据流图,用户登录系统后,可以对库存业务进行操作,比如查询库存信息,调拨产品等。系统库存管理数据流图如图3・4所示。P3.-UI1Ai)2()2嗽取>询库存信瞬;:営f呦库存信息表3・・04获取库存俏息TU3D6更新眸存佰息U3I8更新略存D3,03«调蹲Prnn卜3・02仓歼调拨信U3.IU更新犀存信息,息衣D51W•填写入库信息・卜3心入用侑息衣餐鴛U.黑兽豐-卜m进货信息农m;iztw'i-in息U31、更新并存信息退货fnUD3.21史新衣库存信息.LH.I3库存已存在产品报损处理12入府报损处理D3:11获取进货单信息D318出I库管理►P3D4i^写报损信rILB14垃耳」报损机一卩咖损信息表P3.U网►另产品出——LM2U填写出叩信息库单卜3・U7销售皿19获取销售信息信息农图3-4D3;17填写退货信息衷P3・M发送报损单到退货管理U3:16获取产品f报损信息卜3UO出库信息表,系统库存管理数据流图 3.2.1数据字典数据字典是关于数据的信息的集合,也就是对数据流图屮包含的所有元索的定义的集合。数据字典的作用是在软件的分析和设计过程中提供关于数据的描述信息。--般说来,数据字典应该由下列四类元素构成:数据项,数据流,数据存储和数据处理。数据字典的作用是在软件分析和设计的过程屮给人提供关于数据的描述信息。它主要是对数据流图屮的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。1.数据项定义:表3-1系统釆购层数据项左义编号名称别名类型长度101-01csld采购中请编号varchar50字节101-02csName采购申请产品varchar50字节101-03csValue采购申请产品单价float8字节101-04csNo采购屮请产品数量int4字节101-05csLeixing采购类型varchar50字节101-06csPeople采购申请人varchar50字节101-07csPhone采购申请人电话varchar50字节101-08csDate采购屮请H期datetime8字节101-09csZonge采购中请预算金额float8字节101-10csBeizhu采购申请备注varchar200字节101-11csZhuangtai米购申请状态varchar50字节101-12shBumen申请部门varchar50字节101-13shZhong申请单据种类varchar50字节101-14shSpDate审批FI期datetime8字节101-15cgGpeople供方联系人varchar50字节101-16cgGphone供方联系方式varchar50字节101-17cgZhekou采购折扣float8宁节101-18cgYuncheng运费承担方varchar50字节101-19cgYunfei运费金额float8字节101-20cgFufang付款方式varchar50字节101-21cgYunfang运输方式varchar50字节101-22cgYufu预付款金额float8字节101-23cgQuankuan全款金额float8字节101-24cgFkdate付款U期datetime8宁节101-25cgJhdate进货FI期datetime8字节 续表3-1101-26jhShno损坏数量int4字节101-27jhShijia产品市场价格float8字节101-28ruCangku进化仓库varchar50字节101-29ruPeople入库人员varchar50字节2.数据流定义:系统采购管理数据流定义:数据流编号:D1-01数据流名称申请米购产品数据流來源采购员数据流去向P1-01数据流组成101-01+101-02+101-03+101-04+101-05+101-064-101-07+101-08+101-09+101・10+101-11数据流编号:D1-02数据流名称:填写采购申请单信息数据流來源:P1-01数据流去向:F1-01数据流组成:101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101・10+101-11数据流编号:D1-03数据流名称:获取采购申请信息数据流來源:F1-01数据流去向:P1-01数据流组成:101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101・10+101-11数据流编号:D1-04数据流名称:提交采购申请单数据流來源:P1-01数据流去向:P1-05数据流组成:101-01+101-02+101-03+101-04+101-05+101-06+101-07+ 101-08+101-09+101・10+101-11 数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-05提交待审批信息P1-01F1-02101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-06给出采购评估意见P1-05F1-02101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-124-101-13+101-14数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-07获取评估意见F1-02P1-02101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-124-101-13+101-14数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-08制定采购订单采购员P1-02101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-144-101-15+101-16+I01-17+I01-18+101-19+101-20+101-21+101-22+101-23+101-24+101-25数据流编号:数据流名称:数据流来源:D1-09填写采购订单信息P1-02 数据流去向:数据流组成:F1-03101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-144-101-15+101-16+I01-17+I01-18+101-19+101-20+101-21+101-22+101-23+101-24+101-25数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-10提交采购订单P1-02P1-05101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-144-101-15+101-16+I01-17+I01-18+101-19+101-20+101-21+101-22+101-23+101-24+101-25数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-11获取采购订单信息F1-03P1-05101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-144-101-15+101-16+I01-17+I01-18+101-19+101-20+101-21+101-22+101-23+101-24+101-25数据流编号:数据流名称:数据流来源:数据流去向:数据流组成:D1-12给出采购审批状态P1-05F1-03101-01+101-02+101-03+101-04+101-05+101-06+101-07+101-08+101-09+101-10+101-11+101-124-101-13+101-14+I01-15+I01-16+I01-17+I01-18+I01-19+I01-20+I01-21+101-22+101-23+101-24+101-25数据流编号:D1-13 数据流名称:进货数据流来源:采购员数据流去向:P1-03数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据流编号:D1-14数据流名称:生成进货信息数据流来源:P1-03数据流去向:F1-04数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据流编号:D1-15数据流名称:获取到货信息数据流来源:FI-04数据流去向:P1-04数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据流编号:D1-16数据流名称:产品已经到货验收数据流来源:P1-03数据流去向:P1-04数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据流编号:D1-17数据流名称:验收产品数据流来源:采购员数据流去向:P1-04数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据流编号:D1-18数据流名称:以验收产甜入库 数据流来源:P1-04数据流去向:F1-05数据流组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27+101-28+101-29数据流编号:D1-19数据流名称:通知财务付款数据流来源:P1-04数据流去向:F1-06数据流组成:101-01+101-02+101-04+101-06+101-17+101-19+101-22+101-23+101-25+101-26+101-273.数据存储定义系统采购管理数据存储定义:数据存储编号:F1-01数据存储名称:采购申请信息表数据存储简述:用来存储要采购的产站的申请表数据存储组成:101-01+101-02+101-03+101-04+101-05+101-064-101-07+101-08+101-09+101-10+101-11数据存储编号:F1-02数据存储名称:采购评估表数据存储简述:用来存储对提交过来的申请给出评佔数据存储组成:101-01+101-02+101-03+101-04+101-05+101-064-101-07+101-08+101-09+101-10+101-11+101-12+101-13+101-14数据存储编号:F1-03数据存储名称:采购订单信息表数据存储简述:用来存储对已经批准的产品制定详细的合同数据存储组成:101-01+101-02+101-03+101-04+101-05+101-064-101-07+101-08+101-09+101-10+101-11+101-12+101-13+101-14+I01-15+I01-16+I01-17+I01-18+101-19+101-20+101-21+101-22+101-23+101-244-101-25 数据存储编号:F1-04数据存储名称:进货表数据存储简述:用来存储已经到货的产品的信息数据存储组成:101-01+101-02+101-04+101-06+101-25+101-26+101-27数据存储编号:F1-05数据存储名称:入库表数据存储简述:用来存储产品入库的信息数据存储组成:101-01+101-02+101-04+101-06+101-25+101-264-101-27+101-28+101-29数据存储编号:F1-06数据存储名称:付款信息表数据存储简述:用来存储已到货产詁的付款信息数据存储组成:101-01+101-02+101-04+101-06+101-17+101-19+101-22+101-23+101-25+101-26+101-273.数据处理定义系统采购管理数据处理定义:数据处理编号:P1-01数据处理名称:填写采购申请单数据处理简述:填写一个采购申请数据处理输入:D1-01数据处理输出:D1-02+D1-04+D1-05数据处理编号:P1-02数据处理名称:填写采购订单数据处理简述:制定采购合同数据处理输入:D1-07+D1-08数据处理输出:D1-09+D1-10数据处理编号:P1-03 数据处理名称:生成进货单数据处理简述:对以到货的产品进行统计数据处理输入:D1-12+D1-13数据处理输出:D1-14+D1-16数据处理编号:P1-04数据处理名称:验收货物数据处理简述:已到货的产品进行验收入库数据处理输入:D1・15+D1・16+D1・17数据处理输出:D1-18+D1-19数据处理编号:P1-05数据处理名称:发送采购申请单到财务评估模块数据处理简述:对提交过来的申请单给出审批意见数据处理输入:D1-03+D1-04+D1-10+D1-11数据处理输出:D1-06+D1-123.2本章小结木章对该系统进行了详细的分析,并且采用数据流图对软件运行过程屮的数据的产生、流转、存储进行了详细的描述,数据字典屮定义了软件屮产生的数据的存储格式和意义。 第4章总体设计4.1系统模块总体设计木阶段设计的基木口的是解决系统如何实现问题,也叫做概要设计。利用层次图来表示系统屮各模块之间的关系。层次方框图是用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的炬形框,它代表完整的数据结构,下面的各层短形框代表各个数据的子集,最底层的各个矩形框代表组成这个数据的实际数据元素。系统设计的口标是使系统实现拥有所要求的功能,同吋,力争达到高效率、高可靠性和可修改性,并且容易掌握和使用。木系统一共分为六个模块,每个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是同一个数据库,只是所访问的表不同而已。每个模块的功能都是按照在调研屮搜集的资料进行编排制作的。依据上述功能的分析,系统屮模块分别为:采购管理、销售管理、库存管理、基本资料管理、系统维护和财务管理。各功能模块的具体功能如下:1.采购管理:主要是负责釆购的一个模块,负责申请采购产品、制定采购合同、进货和退货给厂家等操作。2.销售管理:主要是负责销售的一个模块,负责与客户打交道,把产品销售出去。也需要制定销售单,处理客户的退货要求。同吋也会对销售业绩做一个统计。3.库存管理:对库存进行管理工作,进货、出货的管理,损坏产品的管理,还有对库存的一个基木查询。4.基木资料:对基础数据进行管理,包括客户、产品、仓库和公司的资本资料的维护。5.系统维护:对用户的一个管理,可以用来分配权限、添加用户和修改密码。6.财务管理:对采购和销售的资金进行管理,平且来审批采购和销售提交过来的申请单。 系统功能结构图如图4・1所示。韩泰轮胎销俗公川进销存系统图4-1系统功能结构图4.2数据库设计数据库技术是计算机科学领域屮发展最快的技术之一,也是应用最广的技术之一,口前,它已成为计算机信息系统与应用系统的核心技术和重要基础。具体的说,数据库设计是一个给定的应用环境,构造最优的用户应用需求。这个问题是我们在进行软件开发吋期主要研究的方向。4.2.1数据库设计概述数据库设计应该和应用系统设计和结合,也就是说,整个设计过程中要把结构设计和行为设计密切结合起來。数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库设计的任务是根据一个单位的信息需求、处理需求和数据库的支撑环境。其中信息需求表示一个单位所需要的数据及其结构。处理需求表示一个单位需要经常进行的数据处理。前者表达了对数据库的内容及结构的要求,也就是静态要求;后者表达了基于数据库的数据处理要求,也就是动态要求。 4.2.2数据分析数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据分析的口的是把隐没在一大批看来杂乱无章的数据屮的信息集屮、萃取和提炼出来,以找出所研究对象的内在规律。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析过程同数据库的逻辑结构和物理结构密切相关,需要确定、编制、组织、筛选应用程序所使用的信息。它以一种能够分析和分类的方式来捕获用户的所有信息,这使得某一模型可以直接转化成数据库结构。要确定实体和关系的性质,用户必须确定单个实体和他们相关的属性。为每个对象定义一个完整的与商业相关的描述以及他单独使用的要求,这也包括确定此实体是否使用应用程序的永久需求,每种关系的基木定义使用了商业定义和与关系相连接的需求。4.2.3数据库的详细设计在设计数据库时,应考虑以下事项:1.数据库的用途及该用途将如何影响设计,应创建符合用途的数据库计划。2.数据库规范化规则,防止数据库设计中出现错误。3.对数据完整性的保护。4.数据库和用户权限的安全要求。5.应用程序的性能需求,设计数据库时必须利用SQLServer2000中能够提高性能的功能。对于性能而言,在数据库大小和硬件配置Z间权衡也是很重要的。6.数据库维护。实体•联系图(Entity-RelationDiagram)用來建立数据模型,通常将它简称为E・R图。E・R图提供了表示实体、属性和联系的方法,用來描述现实世界的概念模型。在E-R图中要明确表明1对多关系,1对1关系和多对多关系。1对1关系在两个实体连线方向写1;1对多关系在1的一方写1,多的一方写N;多对多关系则是在两个实体连线方向各写N,M。下面根据数据库画出详细的E・R图。 数据库E-R如图4・2所示。进货佶息衣PK进货标识进货单編号产品名称FKI采购标识付款PK采购订单信恩表PK米购标识采购主题产品Id产品名称FK1采购申请标识FK1FK2FK3审批审批信息农PK标识付款信息表|nFK1卜K2付款单编号汇总标识进货标识入库信息农入库标収入库单编号产晶名称仓库編号库存标浜进货标识*户退货标识生成__D采购申请信息表PK来购申请标识采购申诸编号采购申请名称中请入库仓库信息表PK仓库标识FK1FK2卜K3审批编号产品名称采购申请标识采购标识销啻订单标识审批客户信息农审批销售订单信息表PK审倂订单标识FK1FK2销售订单主题订单編号客户标识员工标识销鲁员工信息表员丄杯UI卜K1FK1员工编号业绩公司标识部门名称1财务汇总信息表1PK力总杯识汇总单编号收款編号付款编号退款编号1—<汇总n退就信息表汇总汇总标识PK1客户退货信息表_PK客尸退货杯贝客户退货爪编号产品名称客户编号仓库编号库存信息表PK库存标识调拨FK1FK2退款单编号汇总标识客户退货标识退款调拨信息农FKI库存报损库存编号产品名称仓库标识仓库幺称仓库編号PK出库信息农报损佶息衣报揃标识FK1FK2出库单编号仓库编号退货标识库存标识调拨*1编号产品名称FK1库存标识FK1俏售信息表悄例标识1订单•产品信息表FK1卜K2廉佣客户編号客户名称销倍单编号产品编号術習员編号销倂订单编号销皆订单标识产品标识数量价格销售订单标识报损产品编号报损产品名称库存标识mi生成1申请退货信息农退货杯识退货公词佶息表PK公司标识PK部门笛标产品名称仓库编号报损标识收款关联部门人数部门经理联系方式图4-2数据库E-R图 4.2.2数据表的详细设计根据韩泰轮胎销售公司的实际情况,本系统的数据库命名为:jxco该数据库共有22个表,其主要表结构如表4-1至4-10所示。1.采购订单信息表,用来存储采购员申请采购的订单信息,包括采购主题、产品名称、采购员姓名等字段,如表4・1所示。表4-1tcaigou(采购订单信息表)序号英文名中文名类型长度(字节)1id采购标识int42cgZhuti采购主题varchar503cgld采购单编号varchar504cgName产品名称varchar505cgValue产品单价float86cgNo采购数量int47cgLeixing采购类型varchar508cgPeople采购员姓名varchar509cgPhone釆购员联系方式varchar5010cgGpeople供方联系人varchar5011cgGphone供方联系方式varchar5012cgZhekou采购折扣float813cgYuncheng运输承担方varchar5()14cgYunfei运费金额float815cgFufang付款方式varchar5016cgYunfang运输方式varchar5()17cgYufu预付款金额float818cgQuankuan全款金额float819cgFkdate付款日期detetime820cgJhdate进货口期detetime821cgSqdate屮请日期detetime822cgZhuangtai采购单状态varchar5023cgCsId采购中请标识int424cgBeizhu备注varchar2002.仓库信息表,用来存储仓库的基木信息,包括仓库编号、仓库名称、仓库类型、仓库规格、仓库电话等字段,如表4・2所示。表4-2tcangku(仓库信息表)序号英文名中文名类型长度(字节)1id标识int42ckNamc仓库名称varchar50 续表4-23ckLeixng仓库类型varchar504ckGuige仓库规格varchar505ckZhuangtai仓库状态varchar506ckGuanliyuan仓库管理员varchar507ckPhone仓库电话varchar501.客户信息表,用来存储客户的基本资料,包括客户编号、客户类型、联系人、所在地区、具体地址、联系方式、所在城市等字段,如表4-3所示。表4-3tcustomer(客户信息表)序号英文名中文名类型长度(字节)1id客户标识int42cusName客户名称varchar503cusLeixing客户类型varchar504cusJsfs金额结算方式varchar5()5cusJglx价格类型varchar506cusLianxiren客户联系人varchar507cusMobilephone手机号码varchar508cusCity所在城市varchar509cusField所在地区varchar5010cusAddress具体地址varchar5011cusPhonc固定电话varchar5012cusFox传真varchar5013cusLrdate录入日期detetime814cusBcizhu备注varchar20015cusld客户编号varchar502.库存调拨信息表,用来存储产品调拨的信息,包括产品名称、调入仓库、调出仓库、调拨日期等字段,如表4・4所示。表4-4tdiaobo(库存调拨信息表)序号英文名中文名类型长度(字节)1id标识int42dbld调拨单编号varchar503dbName调拨产品名称varchar504dbRu调入仓库varchar505dbChu调出仓库varchar506dbZhuangtai调拨状态varchar507dbDate调拨口期detetime88dbNo调拨数量int49dbKcld库存标识int4 续表4-410dbSqdate中请日期detetime81.进销存汇总信息表,用来存储付款信息、收款信息和退款信息的一个总表,包括单据编号、提交单据的部门、提交单据等种类、经手人等字段,如表4・5所示。表4-5thuizong(进销存汇总信息表)序号英文名中文名类型长度(字节)1id汇总标识int42hzld单据编号varchar503hzBumen部门varchar504hzZhong种类varchar505hzPeopIe申请人varchar506hzYu预款金额float87hzQuan全款金额float88hzSqdate中请口期detetime89hzJpeople经手人varchar5010hzSpdate审批日期detetime811hzSkld收款编号int412hzFkld付款编号int413hzTkld退款编号int414hzZhuangtai状态varchar2002.进货信息表,用来存储已经到货的产品的信息,包括产品名称、到货数量、产品单价、到货日期、到货数量等字段,如表4・6所示。表4-6tjinhuo(进货信息表)序号英文名中文名类型长度(字节)1id进货标识int42jhld进货单编号varchar503jhName产品名称varchar504jhNo到货数量int45jhDhdate到货口期detetime86jhShno损坏数量int47jhPcoplc经手人varchar508jhValue产品单价float89jhShijia产品市价float810jhCgld采购标识int411jhZt进货单状态varchar503.库存信息表,用来存储当前仓库屮的产品的信息,包括产品名称、库存数量、所在仓库、市场价格、挤压成本等字段,如表4・7所示。 表4-7tkucun(库存信息表)序号英文名中文名类型长度(字节)1id库存标识int42kcld库存编号varchar503kcName产品名称varchar504kcNo库存数量int45kcCangku所存仓库varchar506kcValue产品单价float87kcShijia产品市价float88kcBeizhu备注varchar2009kcNowcang产品现存仓库varchar5010kcZhuangtai库存状态varchar5011kcPeople经手人varchar5012kcSqdate申请日期detetime813kcSpdate审批口期detetime814kcYijian库存意见varchar5015kcRudate入库日期detetime816kcChudate出库日期detetime817kcDbdate调拨日期detetime818kcChucang出货仓库varchar5019kcJiya挤压产品成本float820kcZt库存状态varchar5()21kcNcid仓库标识int41.审批信息表,用来存储采购部和销售部提交过来的申请信息,包括审批编号、申请部门、申请单种类、产品总额、申请H期等字段,如表4-8所示。表4-8tshenpi(审批信息表)序号英文名中文名类型长度(字节)1id标识int42shld审批编号varchar503shBumen屮请部门varchar504shZhong中请单种类varchar505shPcoplc申请人varchar506shZhuangtai申请单状态varchar507shSqDate申请H期detetime88shSpDatc审批FI期detetime89shBeizhu备注varchar20010shName申请单编号varchar5011shShangping申请产品名称varchar5012shValue产品单价float8 续表4-813shNo数量int414shZonge产品总额float815shPhone申请人联系方式varchar5016shCsId采购申请单标识int417shCgld采购标识int418shXdld销售订单标识int419shFenlei申请分类varchar501.用户信息表,用来存储使用该系统的用户的基本信息,包括用户名、密码等字段,如表4・9所示。表4-9tuser(用户信息表)序号英文名中文名类型长度(字节)1id编号int42username用户名varchar5()3password密码varchar504sex性别varchar505age年龄int46zhiwu职务varchar507phone联系电话varchar508email电子邮件varchar509address地址varchar5010beizhu备注varchar502.销售订单信息表,用来存储销售员与客户定制的销售订单,包括销售主题、产品名称、单价、折扣等字段,如表4・10所示。表4・10txiaoding(销售订单信息表)序号英文名中文名类型长度(字节)1id销售订单标识int42xdZhuti销售主题varchar503xdDdid订单编号varchar504xdChid产品编号varchar505xdNamc产品名称varchar506xdValue产品单价float87xdNo销售数量int48xdLeixing销售类型varchar509xdZhekou折扣float810xdPeople销售员varchar5011xdPhone销售员联系方式varchar5012xdKhpeople客户联系人varchar50 续表4-1013xdKhphone客户联系方式varchar5014xdCity客户所在城市varchar5015xdDian店曲名称varchar5016xdYuncheng运费承担方varchar5017xdYunfei运费金额float818xdFufang付款方式varchar5()19xdYunfang运输方式varchar5020xdXddate下单日期detetime821xdFkdate付款日期detetime822xdJhdate交货LI期detetime823xdYufu预付款金额float824xdQuankuan全款金额float825xdZhuangtai销售订单状态varchar5()26xdCusId客户标识int427xdYgld员工标识int428xdProId产品标识int429xdBeizhu备注varchar2004.3本章小结总体设计阶段,在需求分析的基础之上规划出了系统的功能模块,以及在此分析基础上设计出的具体的、可以满足本系统全部需求的数据库。将该系统分成了六个功能模块,并对每个模块的基本功能进行了叙述。提供了系统功能模块图、以及系统E・R图,然后对本系统使用的数据库的结构进行了详尽的叙述,同时列出了部分表的表结构。在总体设计阶段,由于数据库在设计中有非常重要的作用,所以在开发过程中,在考虑数据库上的时间较多。 第5章详细设计系统运行平台设置硬件环境:台式计算机(PC)—台,如表5・1所示。表5-1运行环境换件配置硬件配置处理器PentiumIII800以上内存256M以上硬盘空间30G以上软件环境:Windows2000ProfessionalorWindows2000Server操作系统。5.2开发工具简介1.MyEclipse6.0MyEclipse企业级工作平台是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率,它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试、和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernateo简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。在结构上,MyEclipse的特征可以被分为7类:(1)JavaEE模型(2)WEB开发工具(3)EJB开发工具(4)应用程序服务器的连接器(5)JavaEE项口部署服务(6)数据库服务(7)MyEclipse整合帮助对于以上每一•种功能上的类别,在Eclipse屮都有相应的功能部件,并 通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。1.SQLServer2000SQL是英文(StructuredQueryLanguage)的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立关系,进行沟通。按照ANSI(美国国家标准协会)规定,SQL被作为关系型数据库管理系统的标准语言,SQL语句可以用来执行各种各样的操作,例如更新数据库屮的数据,从数据库屮提取数据等。口前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。SQLServer2000,是Microsoft公司推出的SQLServer数据库管理系统的版木,该版木继承了SQLServer7.0版木的优点,同吋又比它增加了许多更先进的功能,只有使用方便、可伸缩性好、与相关软件及承诺过程度高等优点。可以运行MicrosoftWindows2000以上的大型多处理器等多种平台使用。同吋,SQLServer2000还提供了存储过程。这样的好处是,应用程序访问数据库的数据并不是直接的与数据库表打交道,而是通过存储过程的运行来获取所需要的数据。这样的设计有一个好处就是,避免了频繁的表操作,而通过运行在服务器端的存储过程可以极大的提高运作效率和提升访问数据的速度,同吋也很好的屏蔽了数据表的逻辑,使得数据库访问变成了数据库提供的服务访问。MicrosoftSQLServer2000能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同吋连接到SQLServer2000实例。SQLServer2000为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同吋更新相同的数据。这使SQLServer2000得以应用于应用程序必须在木地存储数据的小型系统中。5.3系统主界面设计木系统的主界面整体结构为上左右结构,上面部分显示系统名称以及当前用户名称以及角色,左面部分采用了树型层次结构罗列了系统的全部功能,包括采购管理、销售管理、库存管理、基木资料管理、系统维护、财务管理,并且展开之后包括全部功能的子模块。右面部分为客户区,显示当前操作的使用窗口,并且在右下角现实用户当前登录的吋间。简洁、清晰的界面使用户赏心悦口。 系统主界面如图5-1所示。环境友好环保sm:需动产S4:工後亿<»仿下的*(久甘・从UMi^AaK^a力•电占”软事件^・■保伦©的尢・ait・・心(R3Bt・■・4«网砂(厂丿-从地・A出8tFK795••SOM»*雷PMB_口■■IRRiT^・»♦as•q尸MirtrcIUB・・□IzsseAM□22M23M文.4V*M□3W«v«23eiu..沙m”《mv□4XM23Yc4tl4□s*wwMB□445M■□?iau*•tltm»□1VWPFfflMr.□•40e±»onie»g««口1O2■宜"口9□4MM—fiTAVW口Aw«3l«□6?ccm■食□•O8♦已MDCKirfe□0□10>■13T-W»fmimtnF"・45I3JM5B«1«R・2•/hzU5621S"眄祁RULlHtS]>8MMma■■i■曲駅9:$;onMidi伸助对・criMTWUIT・■色M>2"不wornTcru/lit•VS4»m5图5-10仓库管理 1.实现口标管理员登陆后,系统判断其使用权限,如果没有使用权限,则拒绝其访问。如果有使用权限,则可以对仓库的信息进行修改、删除、添加等操作。对已经修改的信息进行存档。2.实现过程(1)JSP页说明仓库管理主要JSP文件功能如表5-22所示。表5-22仓库管理主要JSP文件功能列表JSP页而名称功能addCangku.jsp新建仓库页面listCangku.jsp仓库列表页面selectCangku.jsp查看仓库信息页面updateCangku.jsp更新仓库信息页而(1)数据库和关表数据库中仓库管理管理相关表如表5-23所示。表5-23数据库中仓库管理相关表表名模块名tcangku基本资料管理(2)主要Java类仓库管理主要用到的Java类如表5-24所示。表5-24仓库管理主要用到的Java类类名功能com.slv.bean.Cangku.java仓库信息实体类com.slv.service.CangkuService.java仓库信息业务逻辑层com.slv.scrvicc.impl.CangkuScrvicclmpl.java仓库信息业务逻辑实现层com.slv.action.CangkuAction.java仓库信息表示层(3)主要方法仓库管理主要用到的方法如表5-25所示。表5-25仓库管理主要用到的方法名方法名功能addCangkuAction()新建仓库信息deleteCangkuAction()删除仓库信息listCangkuAction()遍历仓库信息seleteCangkuAcion()查看仓库信息 updateCangkuAction()更新仓库信息5.3审批管理功能设计审批管理主要负责采购部和销售部提交过来的申请。只有通过申请的操作才可以继续下一步操作。所以,审批管理就是进销存系统屮必不可少的一项操作。审批管理如图5-11所示。图5-11审批管理1.实现口标管理员登陆后,系统判断其使用权限,如果没有使用权限,则拒绝其访问。如果有使用权限,则可以对采购部和销售部提交过来的申请单进行审批,给出审批意见,然后返回到提交申请处。对修改的信息进行存档。审批管理流程图描述:首先用户登录,判断其权限,有权限,进入审批管理管理模块,否则进行重新登录。审批通过之后,通知申请人,并把数据存档,如果审批不通过,通知申请人,不存档直接结束任务。审批管理流程图如图5・12所示。2.实现过程(1)JSP页说明审批管理主要JSP文件功能如表5-26所示。表5-26审批管理主要JSP文件功能列表JSP页而名称功能listShenpi.jsp审批信息列表页面selectCaigou.jsp杳看采购订单详细页面 selectShenpi.jsp查看釆购中请单页面 续表5-26scIcctXiaoding.jsp查看销售巾请单页面shenpi.jsp审批申请单页面I¥市批管理通过?是一[―通知申请人通知申请人L->存档管理,结束图5-12审批管理流程图(1)数据库相关表数据库中审批管理管理相关表如表5-27所示。表5-27数据库中审批管理相关表表名模块名tcaishen采购管理tcaigou采购管理txiaoding销售管理tshcnpi财务管理(2)主要Java类审批管理主要用到的Java类如表5-28所示。表5-28审批管理主要用到的Java类类名功能com.slv.bean.Shenpi.java审批管理实体类com.slv.service.ShcnpiScrvicc.java审批管理业务逻辑层com.slv.service.impl.ShenpiServicelmpl.java审批管理业务逻辑实现层com.slv.action.ShenpiAction.java审批管理表示层(4)主要方法审批管理主要用到的方法如表5-29所示。农5-29审批管理主要用到的方法名 方法名功能deleteShenpiAction()删除审批信息listShenpiAction()遍历审批信息seleteShenpiAction()查看审批信息spShenpiAction()审批中请单信息5」0本章小结本章对此系统的详细设计与实现进行了介绍,详细设计阶段的根本口标是确定系统应该怎样具体地实现所要求的系统,经过这个阶段的设计工作,得出了对门标系统的精确的描述,从而可以在编辑阶段把这个描述直接翻译成用某种程序设计语言书写的程序。在模块设计的过程小对模块的逻辑描述基本清晰易读、正确可靠。 第6章系统测试与性能分析6.1为什么要进行系统测试软件测试是为了保证软件产品的最终质量,在软件开发的过程屮,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据冋归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。基于不同的立场,存在着两种完全不同的测试口的。从用户的角度出发,普遍希望通过软件测试暴露出软件屮陷藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品屮不存在错误的过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。因为在程序屮往往存在着许多预料不到的问题,可能会被疏漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。如果不把着眼点放在尽可能查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段屮去。如果站在用户的角度替他们设想,就应当把测试活动的口标对准揭露程序屮存在的错误。在选取测试用例吋,考虑那些易于发现程序错误的数据。6.2软件测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。如果给软件测试下定义,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,可能相当于软件工程其他开发步骤总成木的三倍到五倍。因此,必须高度重视软件测试工作,绝不要以为写出程序之后软件开发工作就接近完成了,实 际上,大约还有同样多的开发工作量需要完成。仅就测试而言,它的口标是发现软件屮的错误,但是,发现错误并不是我们的最终口的。软件工程的根木口标是开发出高质量的完全符合用户需要的软件。6.2.1测试的基本概念1.测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。要进行测试,除了要有测试数据外,还应同时给出该组测试数据应该得到怎样的输出结果,我们称它为预期结果。在测试时将实际的输出结果与预期结果比较,若不同则表示发现了错误。因此测试用例是由测试数据和预期结果构成的。为了发现程序中的错误,应竭力设计能暴露错误的测试。一个好的测试用例是极有可能发现迄今为止尚未发现的错误的测试用例。一次成功的测试是发现了至今为止尚未发现的错误的测试。2.静态测试静态测试是指不运行被测程序木身,仅通过分析或检查源程序的语法、结构、过程、接口等來检查程序的止确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行來找错。静态方法通过程序静态特性的分析,找出欠缺和可疑Z处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。3.动态测试动态测试是指通过运行被测程序,检查运行结果与预期结果的养界,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。4.白盒测试和黑盒测试测试的关键是测试用例的设计,其方法可分成两类:白盒测试和黑盒测试。白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信 息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。6.2.2测试步骤软件测试的主要步骤有单元测试、集成测试和确认测试。1.单元测试(UnitTesting)单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分和隔离的情况下进行测试。单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。2.集成测试(IntegrationTesting)集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为了系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起來也能正常的工作。集成测试主要发现设计阶段产生的错误,通常采用黑盒测试。3.确认测试(ValidationTesting)确认测试乂称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。4.系统测试通过与系统的需求和比较,发现所开发的系统与用户需求不符或孑盾的地方,从而提出更加完善的方案。它的的任务是尽可能彻底地检杳出程序中的错误,提高软件系统的可靠性。测试发现问题Z后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖 系统所有联合的部件。6.2本系统测试软件测试方法从测试人员角度看,可分为手动测试和自动测试。从源代码的角度可分为单元测试和功能测试。从理论定义来分,可分为黑盒测试,白盒测试。为了测试系统的正确性和完整性,木章将对系统屮重点模块进行测试。6.3.1采购申请测试采购测试目标描述:用户登陆后,系统判断其使用权限,如果没有使用权限,则拒绝其访问。如果有使用权限,则可以新建釆购巾请。提交后给财务进行审批,审批结束后将巾请单退回给用户。用户可以查看通过和未通过的中请及审批意见,对未通过的中请进行修改或删除,修改后的巾请可以再次提交。对已通过的巾请可以进行归档。采购测试结果:如表6-1所示表6-1采购测试结果表测试用例号输入数据测试结果T1用户点击采购屮请,系统判断其使用权限正常T2用户填写中请进行捉交正常T3相关领导审批通过后提交财务审批正常T4财务审批未通过退冋用户正常T5财务审批通过后通知用户返回失败T6用户删除未通过中请正常T7用户修改未通过中请再次提交正常T8用户归档已通过申请正常经过测试发现测试用例T5的期望结果与实际结杲不符,其他测试用例的期望结果与实际结果一致。造成测试用例T5的期望结果与实际结果不符的原因是因为在测试T5Z前,以经测试了测试用例T4,测试用例T4的期望结果与实际结果一致。但是,测试完测试T4后这条记录已经返回给用户通知“未通过审批”。所以,此条记录不可能出现在中请人的“通过提醒”的列表中。这时测试T5当然会产生与期望结果不符的结杲。解决这个问题的方法是,必须重新填写申请,送到财务进行审批,审批 通过之后,返回到申请用户的“通过提醒”列表屮。6.3.2销售测试销售测试目标描述:用户登陆后,系统判断其使用权限,如果没有使用权限,则拒绝其访问。如果有使用权限,则可以销售产品。签订销售订单后,用户可以通知库存出货,财务进行收款管理。库存管理和财务管理处理Z后,通知用户,销售业务完成。对已通过的销售可以进行归档。销售测试结果:如表6・2所示表6-2销售测试结果表测试用例号输入数据测试结果T1用户点击销售屮请,系统判断其使用权限正常T2用户填写销售单进行提交正常T3库存审批出库申请未通过后返回给用户正常T4库存审批出库屮请通过示返回给用户正常T5财务收款管理正常正常T6用户删除未通过申请正常T7用户修改未通过申请再次提交正常T8用户归档已通过申请正常6.2本章小结软件测试是软件开发中的重中之重,在项目管理过程中,强调的是每个过程的每一个环节都耍进行测试,保证系统在每个阶段可以控制。因为软件测试中考虑的问题基本上是项目管理中需耍考虑的问题。具体说,软件测试是事务性的,而项目管理是策略性,一些策略性的东西必须在一些事务性的事务上来实现。软件测试的事务性操作很多,这些操作需耍一个良好的心态去对待。必须有一个良好团队合作的精神。木章通过对软件测试基木概念的简单介绍,使人们了解什么事软件测试、单元测试和黑盒测试等概念。除此之外,本章以采购申请单为例进行了单元测试。通过测试,发现期望结果与实际结果保持一致。 第7章系统主要功能使用说明7.1系统登陆步骤步骤一:用鼠标双击©图标启动应用程序,打开IE浏览器,在地址栏屮输入http://localhost:8080/JXC进入木系统。步骤二:首先输入用户账号,其次输入用户密码,然后输入验证码。登陆信息输入图,如图7・1所示。图7-1登陆信息输入步骤三:点击“确认登陆”按钮进行登陆验证,如果输入的账号信息正确,则会宙现程序主界面,表明成功登陆系统,并在界面的右上角显示当前登陆的操作员姓名,并且在右下角显示当前日期,如果输入的账号不存在、密码错误或验证码错误,则会给出错误提示信息,将禁止登陆此系统。7.2仓库基本资料查询步骤一:用鼠标选择左侧面板的“基木资料”选项卡。步骤二:在弹出的下拉列表屮选择“仓库管理”选项卡。步骤三:用鼠标选择右侧面板的查询下拉菜单屮选择要选择的属性名,并在右侧的文木框中填入属性。步骤四:用鼠标点击“查询”按钮。 选择仓库查询属性图,如图7・2所示。]W^cor*QM:!■山y®F8_JIshnijuflp;*-・A:mrp-Elt"IPn"蔽r*rw:14•Q□1乙—r丈B恥aenswO2♦■Awmtub•4xzt4%n»□3牛9^UMWd23U□4%□$”0TAPKBMir聲Mm□6・5皿□?卄“ccmteM■羔W2IXM□t♦巳3DCWtJT不“TilU5«tM5□09&不CnnttU56M65□10♦Q“U3t"•twrnw?■i旳卿«1«IM■&图7・2选择仓库查询属性7.3仓库基本资料添加步骤一:用鼠标单击左侧面板的“基木资料”选项卡。步骤二:在弹出的下拉列表屮选择“仓库管理”选项卡。步骤三:用鼠标选择右侧面板的“新建信息”按钮。步骤四:在添加仓库页面屮填入仓库的基木信息。填写仓库信息图,如图7・3所示。图7-3填写仓库信息步骤五:用鼠标点击“确定”按钮。 7.4添加采购申请单步骤一:用鼠标选择左侧面板的“采购管理”选项卡。步骤二:在弹出的下拉列表屮选择“采购单申请”选项卡。步骤三:在右侧面板屮新建采购申请表格屮填写申请信息。步骤四:用鼠标点击“提交”按钮,出现“提交成功”提示框。采购单提交成功图,如图7・4所示。图7-4采购单提交成功7.5产品销售统计步骤一:用鼠标选择左侧面板的“销售管理”选项。如图7・5所示。图7-5按产品统计销售记录 步骤二:在弹出的下拉列表屮选择“销售统计”选项卡。步骤三:在右侧面板屮,在查询输入框屮选择相应的年和月。步骤四:用鼠标点击“查询”按钮。步骤五:用鼠标点击“按产品统计”按钮。7.4库存调拨步骤一:用鼠标选择左侧面板的“库存管理”选项卡。步骤二:在弹出的下拉列表屮选择“库存查询”选项卡。步骤三:用鼠标点击“库存调拨”按钮。步骤四:用鼠标点击“新建信息”按钮。步骤五:在新建信息页面屮填写相关信息。调拨信息填写图,如图7・6所示。••人aw:J-■•Q■♦ilk■•irwwrwi«r甲4“ms♦JUMF图7-6调拨信息填写步骤六:用鼠标点击“保存”按钮。7.7分配权限!1!步骤一:用鼠标选择左侧面板的“系统管理”选项卡。步骤二:在弹出的下拉列表屮选择“用户管理”选项卡。步骤三:用鼠标点击“分配权限”按钮。步骤四:用鼠标点击“角色”拉列表,选择其屮一个角色,然后为该角色授予操作木系统的权限。 步骤五:选屮相应的复选框,然后单击页面上部的“保存”按钮完成为角色授权的操作。选择权限图,如图7・7所示。图7-7选择权限7.8修改密码步骤一:用鼠标选择左侧面板的“系统管理”选项卡。步骤二:在弹出的下拉列表屮选择“修改密码”选项卡。步骤三:在右侧面板屮,填入相关信息。步骤四:用鼠标点击“确认”按钮,出现“提交成功”提示框。修改密码图,如图7・8所示。 •-WS■RM・•IDEM:••••••FM•••••喜*•••••6ARItJNF:Mna・■:1T1f»mm■改阳户总釘图7-8修改密码 7.9审批采购申请单步骤一:用鼠标选择左侧面板的“财务管理”屮的“审批”选项卡。步骤二:在审批信息列表屮选择申请单种类为"采购申请单,啲信息。用鼠标单击此信息操作栏屮的“审批”按钮。步骤三:在审批页面屮填入审批相关信息。单击“同意”按钮。审批采购申请单图,如图7・9所示。图7-9审批采购申请单7.10收款管理收款信息填写图,如图7・10所示。图7-10收款信息填写 步骤一:用鼠标选择左侧面板的“财务管理”选项卡。步骤二:在弹出的下拉列表屮选择“进销存汇总”选项卡。步骤三:用鼠标点击“收款管理”按钮。步骤四:在收款信息列表屮选择状态为的“未收款”的信息。用鼠标单击此信息操作栏屮的“收款”按钮。步骤五:在收款信息页面中填写相关信息。7.9本章小结木章中,主要对韩泰轮胎销售公司进销存系统的功能做了一个简要的是要的使用说明。通过图文并茂的方式,把系统主要模块操作步骤和图形界面结合在一起,帮助用户更好的理解木系统,更方便的操作木系统。 结论木篇论文主要介绍了韩泰轮胎销售公司进销存系统的设计过程。系统基木完成了预计功能。当用户登录后,可以根据权限提交采购申请单、制定采购订单、制定销售订单和审批等工作。管理员可以给普通用户分配权限。用户可以将已通过的申请单进行归档。木系统采用了Struts2+Spring+Hibernate的三层架构模式。通过将整个系统分为不同的逻辑块,大大降低了应用系统开发和维护的成木。将数据访问和逻辑操作都集屮到组件屮,增强了系统的复用性。系统的可扩展性也大大增强。木系统主要具有以下优点:1.功能强大实用。2.操作简便,轻松推广。3.界面简洁大方,界面导航清晰,设计人性化。4.安全稳定,快速存储。当然,由于吋间比较紧张,本系统述有许多的不足。主要有以下几点:1.对产品的质量,品质的认识还不能达到相应的程度。2.对管理的理解不深刻,对产品的功能以及需求的挖掘上体现出了明显不足。3.软件的功能缺少深度。由于需求做的不是很充分,所以有些功能并不完善。但木系统还是将进销存系统屮的基木功能完整的展现了出来。可以正常的应用到韩泰轮胎销售公司的日常管理屮,提高企业日常办公的效率。为金业实现自动化办公奠定了良好的软件基础。致谢经过三个月的忙碌工作,木次毕业设计已经接近尾声,毕业设计能够顺利的完成,离不开各位老师,以及一起工作的同学们的关心和帮助。木次毕业设计是在周立波老师的精心指导下完成的,导师渊博的知识、严谨的治学态度深深的影响着我。他无论在理论上还是在实践屮,都给予我很大的帮助,使我的毕业设计逐步地趋于完善。在此期间,我不仅学到了许多新的知识和解决问题的方法,而且也开阔了视野,提高了解决问题的能力。在此,我对导师在毕业设计期间给予的指导和帮助表示衷心的感谢。 其次要感谢在毕业设计阶段给我提出宝贵意见的各位老师以及和我一起作毕业设计的各位同学,他们在木次毕业设计屮给了我很多的鼓励和帮助。然后述要感谢大学四年来所有的教过我的老师,为我打下专业知识的基础。在老师和同学们的支持与帮助之下,我顺利地完成了本次毕业设计。在毕业设计的这段日子里,我所获得的知识将是大学期间最珍贵的。最后感谢我的母校在毕业设计期间给我们提供了一次很好的实习机会,在这次的实习期间,无论是从技术上还是对环境的适应能力上讲,对我今后步入社会都打下了一个良好的基础。感谢学校四年来对我的大力栽培。同吋感谢在设计屮被我引用或参考的论著的作者。再次感谢在木次毕业设计中帮助过我的各界人士!参考文献1王珊,萨师塩•数据库系统概论•第四版•高等教育出版社,1992:98-1272肖慎勇.SQLServer数据库管理与开发•清华大学出版社,2006:10-463史济民,顾春华,李昌武,苑荣•软件工程——原理、方法与应用.第二版.高等教育出版社,2002:64-754闪四iW.SQLServer2000实用教程[M].人民出版社.2002:35-625孙卫琴著•精通Struts:基于MVC的JavaWeb设计与开发.电子工业出版社,2008:139-1756陈吴鹏译.Java编程思想•第四版.机械工业出版社,2007:302-3407高洪志,邓琨著.Java程序设计基础教程•哈尔滨工业大学出版社,2008:186-2208王国辉,牛强等著JSP信息系统开发实例精选.机械工业出版社,2005:126-1509戈茨著.JAVA并发编程实践•电子工业出版社,2007:65-9810夏昕,曹晓刚,唐勇著•深入浅出Hibernate.电子工业出版社,2005:236-32111CraigWalls.SpringinAction.人民邮电出版社,2008:77-15512JeffreyR.Shapiro.SQLServer2000参考大全•清华大学出版社,2002:9-18 附录1TechnicalOverview1.MVCdesignpatterndescriptionMVCpatternisHModel-View-controlleruoftheacronym,theChinesetranslationfor"mode・tryingto-Controller.11MVCapplicationsarealwaysbythesethreecomponents.Event(events)resultinModelorControllertochangetheView,ortochangebothatthesametime.ModelschangeaslongastheControllerofthedataorattributes,alldependonViewisupdatedautomatically.Similarly,theimportantControllerchangedtheView,ViewoftheModelfromthepotentialtoobtaindatatorefreshthemselves-MVCpatternwasfirstmadeSmalltalklanguageresearchgroupappliedtointeractiveapplications.Javalanguageisobject-orientedlanguage,itisnaturalthatintheapplicationinstancesSUNrecommendingMVCmodelasaframeworkfordevelopingWebapplicationmodel.MVCmodelisanarchitecturalpattern,infact,othermodelsneedtobecompletedincollaboration.IntheJ2EEpatterncatalogarecommonlyusedservicetoworkerpatternisnew,andtheservicetoworkerpatternmaybefocusedoncontrolmode,sendingmodeandthePageHelperpattern.2.Struts2IntroductionAlthoughtheclaimsisanewStruts2framework,butitisonlyintermsofrelativeStruts1.Struts2withStruts1thanthereareindeedmanyrevolutionaryimprovements,butitisnotanewreleaseofthenewframework,butinanotherprominentframework:WebWorkdevelopedonthebasisofthe.Tosomeextent,Struts2doesnotinheritStrutsTsancestry,butthesuccessionWebWorklineage.Struts2istheWebWorkupgrade,ratherthananentirelynewframework,thereforethestability,performanceandotherareashaveaverygoodassurance:itabsorbedtheadvantagesofbothStruts1andWebWork,therefore,isaveryworththewaitframework.Struts2ActionclasscanimplementanActioninterfaceandotherinterfacescanalsobeachievedtoenableoptionalandcustomservicespossible.Struts2providesaActionSupporttoachievecommonbaseclassinterface.Actioninterfaceisnotnecessary,anyPOJOobjectexecuteidentitycanbeusedasanobjectStruts2inAction.Struts2Actionobjectforeachinstanceofarequesttogeneratea,thereisnothread-safetyproblems.(Infact,servletcontainersgeneratemanyforeachrequestcanbe discardedobjects,andwillnotleadtoperformanceandgarbagecollectionissues).Struts2Actiondoesnotdependonthecontainer,allowingActionoutofthecontainertobetestedseparately.Ifnecessary,Struts2ActioncanstillaccesstheoriginalRequestandResponse,however,otherelementstoreduceoreliminatedirectaccesstoHttpServetRequestandHttpServletResponsenecessary.Struts2Actioncanbeinitialized,setproperties,callmethodstotest,ndependencyinjectionHsupportalsomakestestingeasier.Struts2usingtheActionattributedirectlyasinputproperties,eliminatingtheneedforthesecondinputobjectneeds.Inputpropertiesmayhavetheirown(sub)attributetherichobjecttype.Actionpropertiesabletoaccesswebpagesonthetaglibs.Struts2alsosupportstheActionFormpattern,richobjecttypes,includingbusinessobjects,canbeusedasinput/outputobjects.ThisModelDrivenfeaturesimplifiesthetaglibreferencetothePOJOinputobjects-Struts2canuseJSTL,butalsosupportsamorepowerfulandflexibleexpressionlanguageMObjectGraphNotationLanguage11(OGNL).Struts2usingtheHValueStackntechnology,sothatthevalueoftaglibtoaccessyourpageswithouttheneedto(view)andobjecttobindtogether.ValueStackStrategyYun1.SpringIntroductionSpringisanopen-sourceframework,createdbyRodJohnson.Itisthedevelopmentofenterpriseapplicationsinordertosolvethehybridnatureofhaircreated.SpringusingthebasicJavaBeantocompletebeforetheEJBisonlypossibletocompletethings.However,Springisnotlimitedtotheuseofserver・sidedevelopment.Fromthesimplicity,testability,andloosecouplingpointofview,anyJavaapplicationcanbenefitfromtheSpring.Objective:Tosolvethecomplexityofenterpriseapplicationdevelopment.Function:UsingthebasicJavaBeantoreplaceEJB,andprovidesadditionalfunctionalityofenterpriseapplications.Range:AnyJavaapplication.2.HibernateIntroductionHibernateisanopensourceobject-relationalmappingframework,itconductedalightweightJDBCobjectpackagesothatJavaprogrammerscanusetheobject-orientedprogrammingideastomanipulatethedatabase.HibernatecanuseEJBinJ2EEarchitecturetoreplacetheCMP,tocompletedatapersistence.ItcanbeappliedtoanyuseofJDBCoccasions,bothintheJava-clientprogramuseful,youcanalsoServlet/ JSPinWebapplicationsusingtheHibernateAPIissimpletolearn,anditistheinteractionwiththeprogramflowquitenaturally.Callitinplace,wecanachievethisobjective.Itbringsalotofautomationandcode-savingbenefits,soIspentalittletimetolearnitwasworthit.Butalsogetanotherbenefit,thatis,thecodedonotcaretousethedatabasetype(otherwiseevenneedtoknow).ThecompanywhereIoncehadinthedevelopmentprocesslaterwasforcedtoreplacethedatabasevendorexperience.Thiswillcauseahugedisaster,butthehelpofHibernate,simplymodifytheHibernateconfigurationfiles.技术简介1.MVC设计模式介绍MVC模式是Model-View-controllerw的缩写,中文翻译为"模式■试图.控制器覽MVC应用程序总是由这三个部分组成。Event导致Controller改变Model或View,或者同吋改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,重要Controller改变了View,View会从潜在的Model获取数据来刷新自己。MVC模式最早是Smalltalk语言研究团提出的,应用于交互应用程序'KJava语言是面向对象语言,很自然的SUN在应用程序事例中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式口录中,通常采用servicetoworker模式是新,而servicetoworker模式可由集屮控制器模式,派遣器模式和PageHelper模式组成。2.Struts2简介虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。Struts2Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2供一个ActionSupport基类去实现常用的接口。 Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾冋收问题。Struts2Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2Action仍然可以访问初始的Request和Response但是,其他的元素减少或者消除了直接访问HttpServetRequest和HttpServletResponse的必要性。Struts2Action可以通过初始化、设置属性、调用方法来测试,“依赖注入',支持也使测试更容易。Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven特性简化了taglib对POJO输入对象的引用。Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言"ObjectGraphNotationLanguage”(OGNL)。Stwts2使用"ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。Struts2使用OGNL进行类型转换。提供基木和常用对象的转换器。Struts2支持通过拦截器堆栈(InterceptorStacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。1.Spring简介Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的发杂性而创建的。Spring使用基木的JavaBean来完成以前只可能有EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring屮受血O口的:解决企业应用开发的复杂性。功能:使用基木的JavaBean代替EJB,并提供了更多的企业应用功能。范兩:任何Java应用。简单-来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。2.Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate可以在应用EJB的JavaEE架构屮取代CMP,完成数据持久化。它还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的 Web应用中使用HibernateAPI学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成口的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。 附录2packagecom.slv.dao.impl;importjava.util.Collection;importjava.utiLList;importorg.hibernate.Query;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importcom.siv.dao.BaseDao;importcom.slv.util.PageModel;publicclassBaseDaoImplextendsHibernateDaoSupportimplementsBaseDao{/***刪除**@paramobj实体类*/publicvoiddelete(Objectobj){this.getHibernateTemplate()-delete(obj);}/***查找指定类屮的所有记录*@paramclassName类名*@returnList*/publicListfindAll(StringclassName){returnthis.getHibernateTemplate().find(Hfromn+className);}/***通过ID查找*@paramentityClass实体类*@paramid标识*@returnObject*/ publicObjectfindByID(ClassentityClass,Integerid){returnthis.getHibernateTemplate().get(entityClass,id);}/**类名属性名属性值*通过属性查找*@paramentityName*@parampropertyName*@paramvalue*@returnObject*/publicObjectfindByProperty(StringentityName,StringpropertyName,Objectvalue){StringqueryString=HfromH+entityName+11wheren+propertyName+-returnthis.getSession().createQuery(queryString).setParameter(O,value).uniqueResult();}/***保存*@paramobj实体类*/publicvoidsave(Objectobj){this.getHibemateTemplate().save(obj);}/***更新*@paramobj实体类*/publicvoidupdate(Objectobj){*this.getHibernateTemplate().update(obj);查找指定类屮得所有记录并分页 *@paramclassName*@paramoffset*@parampagesize类名起始位置每次查询多少条记录*@returnPageModel*/publicPageModelfindAll(StringclassName,intoffset,intpagesize){//得到总记录数StringqueryCountHql="selectcount(*)fromM+className;Queryquery=getSession().createQuery(queryCountHql);inttotal=((Long)query.uniqueResult()).intValue();Listdatas=getSession().createQuery(nfromH+className+ncnorderbycn.iddescH).setFirstResult(offset).setMaxResults(pagesize).list()PageModelpm=newPageModel();pm.setTotal(total);pm.setDatas(datas);returnpm;}/***通过属性查询并分页类名起始位置每次查询多少条记录属性名属性值*@paramclassName*@paramoffset*@parampagesize*@paramprop*@paramvalue*@returnPageModel*/publicPageModelfindAll(StringclassName,intoffset,intpagesize,Stringprop,Objectvalue){StringqueryCountHql="selectcount(*)fromM+className+"cnwherecn."+prop++value+Queryquery=getSession().createQuery(queryCountHql);inttotal=((Long)query.uniqueResult()).intValue(); Listdatas=getSession().createQuery(”from”+className+"cnwherecn.”+prop++value+",n+"orderbycn.iddescn).setFirstResult(offset).setMaxResults(pagesize).list();PageModelpm=newPageModel();pm.setTotal(total);pm^setDatas(datas);if(total%pagesize==0)pm.setTotalpage(total/pagesize);elsepm.setTotalpage(total/pagesize+1);returnpm;}/***通过语句查询并分页类名语句起始位置每次查询多少条记录*@paramclassName*@paramsent*@paramoffset*@parampagesize*@returnPageModel*/publicPageModelfindAll(StringclassName,Stringsent,intoffset,intpagesize){StringqueryCountHql="selectcount(*)fromM+className;Queryquery=getSession().createQuery(queryCountHql);inttotal=((Long)query.uniqueResult()).intValue();Listdatas=getSession().createQuery(sent+norderbycn.iddescn).setFirstResult(offset).setMaxResults(pagesize).list();PageModelpm=newPageModel();pm.setTotal(total);pm^setDatas(datas);if(total%pagesize==0)pm.setTotalpage(total/pagesize); elsepm.setTotalpage(total/pagesize+1);returnpm;}/***查询出指定属性的所有内容*@paramclassName类名*@paramprop属性*@returnList*/publicListfindProp(StringclassName,Stringprop){StringqueryHql="selectcn.n+prop+nfromH+className+Hcnn;returngetSession().createQuery(queryHql).list();}/***根据HQL语句查询*@paramhqlHQL语句*@returnObject*/publicObjectfindA1140bj(Stringhql){returngetSession().createQuery(hql).uniqueResult();}publicListfindA114Sql(Stringsql){returngetSession().createQuery(sql)Jist();}publicObjectfindLast(StringclassName){Listlist=getSession().createQuery(nfromn+className).list();inti=list.size();returnlist.get(i・1);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭