




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I广东科贸职业学院10届学生毕业论文/设计题目_姓名_系别_专业_班级_指导老师_日期_II独创性声明本人声明所呈交的毕业论文设计是本人在指导教师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文设计中不包含其他人已经发表或撰写过的研究成果,也不包含为获得广东科贸职业学院或其他教育机构的证书而使用过的材料。与我一同工作的同志对本论文设计所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文设计作者签名签字日期年月日III商品的进、销、存系统的网站设计摘要随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。计算机在商业管理上的应用,使其逐步系统化、完善化。本文通过对商品进、销、存工作流程的深入了解及进行了可行性分析后,对商品进、销、存系统作了系统分析、系统设计,并完成了系统的开发。本系统采用JAVA语言进行开发,实现了较强大的商品进库处理和商品查询功能。本系统的优点在于简单,便于使用,不足之处在于统计功能不够完善。关键词JAVA数据库商品销售订单查询IV目录前言1第一章系统分析211需求分析212可行性分析213系统功能结构214系统业务流图315分层模式4第二章系统运行环境及系统开发技术521系统运行环境环境422系统开发技术4221JAVA简介4222MYSQL数据库6223SSH简介6第三章系统设计731数据库与数据库表设计7311数据库介绍7312ER图7313数据库表设计832系统功能模块设计11321公共类设计11322系统登录模块设计12323系统主窗体设计13324进货单模块设计14325销售单模块设计18326库存盘点模块设计21327数据库备份与恢复模块设计23第四章系统测试26V41系统软件测试26411测试的原则26412模块测试26413集成测试2742测试总结2743系统实施与维护27结论28参考文献29致谢30VI1前言传统的商品销售管理在商品的统计和管理上不但麻烦,而且还十分的耗费人力和时间。而商品销售管理系统对商品的进货、退货、存货和销售情况等进行了综合统计和管理,使管理人员能够更快的得到自己想要的信息。一个好的商品销售管理系统首先应具备的是基本的信息管理,而商品销售管理系统不但对商品信息信息、代理商信息、订单信息等都进行了系统的管理,而且管理人员可以直接登陆系统查看所有的信息,也可以根据自己的需要搜索相关的信息。本文对系统开发中面临的问题及其解决方案进行详细的设计及合理安排,根据所掌握的JAVA技术对系统的各部分功能进行了实现。2第一章系统分析11需求分析需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。抽象就是出去问题的表面,提取问题的本质,建立问题的逻辑模型,以便以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期的一个重要阶段,其根本任务四确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能干什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类主要的需求。非功能性需求是指实际使用环境所要求的要求,往往是一些限制要求,例如性能要求,可靠性要求,安全保密要求等等。根据用户方的需求,要求企业进销存管理系统具有以下功能1界面设计美观大方,操作方便、快捷、灵活。2实现强大的进销存管理,包括基本信息、进货、销售和库存管理。3提供数据库备份与恢复功能。4提供库存盘点功能。5提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。12可行性分析企业进销存管理系统必须提供商品信息、供应商信息和客户信息的基础设置;提供强大的搜索功能和商品的进货、销售和库存管理功能。系统还必须保证数据的安全性、完整性和准确性。企业进销存管理系统的目标是实现企业的信息化管理,减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提升企业市场竞争力。项目主要以企业的进货、销售和查询统计功能为主,对于库存、销售和进货的记录信息应该及时、准确的保存,并提供想要的查询和统计。由于库存商品数量太多,不易盘点,传统的盘点方式容易出错,系统中的库存盘点功能要准确的计算出各种商品的损益数量,减少企业的不必要的损失。13系统功能结构企业进销存管理系统功能结构图如图11所示。3图11企业进销存管理系统功能结构图14系统业务流图企业进销存管理系统业务流程4图如图12所示。图12企业进销存管理系统业务流程图15分层模式本系统是基于B/S模式开发的JAVAEE多层体系结构WEB应用。系统开发主要分为以下几层表示层、业务层、DAO层、持久层。业务层和DAO层都通过接口与其它层进行连接从而减小了各层之间的耦合度,实现高内聚、低耦的思想。分层结构图如下所示图如图13所示。图13分层结构图5第二章系统运行环境及系统开发技术21系统运行环境环境硬件环境,CPU中央处理器I32330MRAM(内存)4GHDD(硬盘)500G软件开发环境,操作系统WINDOWSXPSP3JDK环境JAVASEDEVELOPMENTKITJDKVERSION7开发工具MYECLIPSE9数据库管理软件MYSQL22系统开发技术本系统的开发主要是使用在ECLIPSE平台下的JAVA语言,并结合了SQLSERVER2000数据库技术,使此系统具有强大的查询功能。服务器使用TOMCAT70221JAVA简介JAVA语言是一个支持网络计算的面向对象程序设计语言。JAVA语言吸收了SMALLTALK语言和C语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下1JAVA语言是简单的。JAVA语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用JAVA。另一方面,JAVA丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,JAVA语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2JAVA语言是一个面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为IMPLEMENTS)。JAVA语言全面支持动态绑定,而C语言只对虚函数使用动态绑定。总之,JAVA语言是一个纯的面向对象程序设计语言。3JAVA语言是分布式的。JAVA语言支持INTERNET应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVANET),它提供了用于网络应用编程的类库,包括URL、URLCONNECTION、SOCKET、SERVERSOCKET等。JAVA的RMI远程方法激活机制也是开发分布式应用的重要手段。64JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮性的重要保证。对指针的丢弃是JAVA的明智选择。JAVA的安全检查机制使得JAVA更具健壮性。5JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。除了JAVA语言具有的许多安全特性以外,JAVA对通过网络下载的类具有一个安全防范机制(类CLASSLOADER),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SECURITYMANAGER)让JAVA应用设置安全哨兵。6JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为CLASS的文件),然后可以在实现这个JAVA平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7JAVA语言是可移植的。这种可移植性来源于体系结构中立性,另外,JAVA还严格规定了各个基本数据类型的长度。JAVA系统本身也具有很强的可移植性,JAVA编译器是用JAVA实现的,JAVA的运行环境是用ANSIC实现的。8JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式,然后可以在实现这个JAVA平台的任何系统中运行。在运行时,JAVA平台中的JAVA解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9JAVA是高性能的。与那些解释型的高级脚本语言相比,JAVA的确是高性能的。事实上,JAVA的运行速度随着JITJUSTINTIME编译器技术的发展越来越接近于C。10JAVA语言是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由THREAD类或其子(孙)类来构造,THREADRUNNABLE的构造子类将一个实现了RUNNABLE接口的对象包装成一个线程,其二,从THREAD类派生出子类并重写RUN方法,使用该子类创建的对象即为线程。值得注意的是THREAD类已经实现了RUNNABLE接口,因此,任何一个线程均有它的RUN方法,而RUN方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。JAVA语言支持多个线程的同时执行,并提供多线程之间的同步机制(SYNCHRONIZED)。11JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,JAVA中的类有一个运行时刻的表示,能进行运行时刻的类型检查。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系7统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。JAVA的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是JAVA企业应用编程接口(JAVAENTERPRISEAPIS)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2222MYSQL数据库MYSQL是一个关系型数据库管理系统,由瑞典MYSQLAB公司开发,目前属于ORACLE公司。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MYSQL的SQL语言是用于访问数据库的最常用标准化语言。MYSQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MYSQL作为网站数据库。MYSQL主要具有以下功能特性1)高速高速是MYSQL的显著特性,在MYSQL中,使用了极快的“B树”磁盘表(MYISAM)和索引压缩;通过使用优化的“单扫描多连接”,能够实现极快的连接;SQL函数使用高度优化的类库实现,运行速度快。一直以来,高速都是MYSQL吸引众多用户的特性之一,这一点可能只有亲自使用才能体会。2)支持多平台MYSQL支持超过20种开发平台,包括LINUX、WINDOWS、FREEBSD、IBMAIX、HPUX、MACOS、OPENBSD、SOLARIS等,这使得用户可以选择多种平台实现自己的应用,并且在不同平台上开发的应用系统可以很容易在各种平台之间进行移植。3)支持各种开发语言MYSQL为各种流行的程序设计语言提供支持,为它们提供了很多API函数,包括C、C、JAVA、PERL、PHP等。4)提供多种存储器引擎MYSQL中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能。5)功能强大强大的存储引擎使MYSQL能够有效应用于任何数据库应用系统,高效完成各种任务,无论是大量数据的高速传输系统,还是每天访问量超过数亿的高强度的搜索WEB站点。MYSQL5是MYSQL发展历程中的一个里程碑,使MYSQL具备了企业级数据库管理系统的特性,提供强大的功能,例如子查询、事务、外键、视图、存储过程、触发器、查询缓存等功能。6)支持大型数据库INNODB存储引擎将INNODB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间还可以包括原始磁盘分区,从而使构建很大的表成为可能,最大容量可以达到64TB。7)安全灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。8)价格低廉MYSQL采用GPL许可,很多情况下,用户可以免费使用MYSQL;对于一些商业用途,需要购买MYSQL商业许可,但价格相对低廉。223SSH简介SSH为SECURESHELL的缩写,由IETF的网络工作小组(NETWORKWORKINGGROUP)所制定;SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登8录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台包括HPUX、LINUX、AIX、SOLARIS、DIGITALUNIX、IRIX,以及其他平台都可运行SSH。STRUTS2的体系与STRUTS1体系的差别非常大,因为STRUTS2使用了WEBWORK的设计核心,而不是STRUTS1的设计核心。STRUTS2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与SERVLETAPI分离。STRUTS2框架的大概处理流程如下1、加载类(FILTERDISPATCHER)2、读取配置(STRUTS配置文件中的ACTION)3、派发请求(客户端发送请求)4、调用ACTION(FILTERDISPATCHER从STRUTS配置文件中读取与之相对应的ACTION)5、启用拦截器(WEBWORK拦截器链自动对请求应用通用功能,如验证)6、处理业务(回调ACTION的EXECUTE方法)7、返回响应(通过EXECUTE方法将信息返回到FILTERDISPATCHER)8、查找响应(FILTERDISPATCHER根据配置查找响应的是什么信息如SUCCESS、ERROR,将跳转到哪个JSP页面)9、响应用户(JSP客户浏览器端显示)10、STRUTS2标签库(相比STRUTS1的标签库,STRUTS2是大大加强了,对数据的操作功能很强大)SPRING方便解耦,简化开发通过SPRING提供的IOC容器,我们可以将对象之间的依赖关系交由SPRING进行控制,避免硬编码所造成的过度程序耦合。有了SPRING,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。AOP编程的支持通过SPRING提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。声明式事务的支持在SPRING中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作,在SPRING里,测试不再是昂贵的操作,而是随手可做的事情。方便集成各种优秀框架SPRING不排斥各种优秀的开源框架,相反,SPRING可以降低各种框架的使用难度,SPRING提供了对各种优秀框架(如STRUTS,HIBERNATE、HESSIAN、QUARTZ)等的直接支持。降低JAVAEEAPI的使用难度SPRING对很多难用的JAVAEEAPI(如JDBC,JAVAMAIL,远程调用等)提供了一个薄薄的封装层,通过SPRING的简易封装,这些JAVAEEAPI的使用难度大为降低。JAVA源码是经典学习范例SPRING的源码设计精妙、结构清晰、匠心独用,处处体现着大师对JAVA设计模式灵活9运用以及对JAVA技术的高深造诣。SPRING框架源码无疑是JAVA技术的最佳实践范例。如果想在短时间内迅速提高自己的JAVA技术水平和应用开发水平,学习和研究SPRING源码将会使你收到意想不到的效果。10第三章系统设计31数据库与数据库表设计311数据库介绍所谓数据库(DATABASE)就是按一定组织方式存储在一起,相互相关的若干数据的结合,数据库管理系统(DATABASEMANAGEMENTSYSTEM)就是一种操作和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库的建立和维护,与操作系统通信等。DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言极其编译程序,数据库管理例行程序等部分组成。关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间关系进行组织和访问的一种数据库,它通过若干表(TABLE)来存取数据,并且通过关系(RELATION)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。312ER图进销存系统主要实现从进货、库存到销售的一体化管理,设计商品信息、商品的供货商、购买商品的客户等多个实体。下面列举了关键的实体和系统的综合ER图。1供应商实体属性图供应商实体包括编号、名称、简称、地址、电话、邮政编码、传真、联系人、联系人电话、开户行和EMAIL属性,如图31所示。供应商编号名称简称地址邮政编码电话传真联系人联系人电话开户行EMAILEAI图31供货商实体属性图2商品实体属性图商品实体包括编号、商品名称、商品简称、产地、单位、规格、包装、批号、批准文号、商品简介和供应商属性。如图32所示。11商品编号名称简称产地规格单位包装批号批准文号简介供应商图32商品实体属性图3客户实体属性图客户实体包括客户编号、客户名称、简称、地址、电话、邮政编码、联系人电话、传真、开户行和账号属性。如图33所示。客户编号名称简称地址邮政编码电话传真联系人联系人电话开户行EMAIL帐号MAIL账号图33客户实体属性图4销售实体属性图销售实体分为销售主表和销售明细表两个实体,它们是一对多的关系。其中销售主表包括销售票号、品种数、金额、验收结论、客户名称、经手人、结算方式、操作员和销售日期属性。销售明细表包括编号、销售票号、商品编号、数量和单价属性。如图34所示。销售主表品种数金额验收结论销售日期客户名称操作员结算方式经手人销售详细表编号销售票号商品编号单价数量销售票号归属N1图34销售实体属性图313数据库表设计数据库在整个管理系统中占据非常重要的地位,数据库结构设计的好坏直接影响着系统的效率和实现效果。进销存管理系统采用MYSQL的数据库,数据库名称为DB_JXC,因篇幅所限,本论文只给出几个重要数据表的表结构。1商品信息表12商品信息表的名称为OURCK_GOODS,主要用于存商品的详细信息,结构如表31所示。表31商品信息表字段名称数据类型字段大小是否主键说明GOOD_IDINT10主键商品IDTYPE_IDINT10商品类型GOOD_COUNTINT10商品数量GOOD_NAMEVARCHAR30商品名称GOOD_UNITVARCHAR10商品单位GOOD_LOCATION_AREAVARCHAR10存放位置(区)GOOD_LOCATION_ARKVARCHAR10存放位置(柜)ADMIN_IDINT8录入人IDGOOD_ADDTIMEVARCHAR15添加时间2商品类型表商品类型表的名称为OURCK_GOODS_TYPES,主要用于存储商品的详细信息,结构如表32所示。表32商品类型表字段名称数据类型字段大小是否主键说明TYPE_IDINT10主键类型IDTYPE_NAMEVARCHAR20类型名称TYPE_INFOVARCHAR100类型说明TYPE_ADDTIMEVARCHAR15添加时间3商品入库表商品入库表的名称为OURCK_STOCK_ORDER,主要用于存储入库单据信息,其结构如表33所示。表33商品入库表字段名称数据类型字段大小是否主键说明ORDER_IDINT10主键入库编号ORDER_NAMEVARCHAR20商品名称GOOD_IDINT10商品IDGOOD_TYPE_IDINT10商品类型GOOD_INFOVARCHAR100详细说明ORDER_COMPANYVARCHAR30货源企业ORDER_COMPANY_TELVARCHAR30企业联系电话GOOD_COUNTINT10数量ORDER_ADDTIMEVARCHAR15添加时间GOOD_PRICEFLOAT10商品进货价ORDER_AMOUNTFLOAT10总金额ADMIN_IDINT10录入人4商品销售表商品销售表的名称为OURCK_MARKET_ORDER,主要用于存储销售单据的信息,结构如表1335所示。表35商品销售表字段名称数据类型字段大小是否主键说明ORDER_IDINT10主键入库编号ORDER_NAMEVARCHAR20商品名称GOOD_IDINT10商品IDGOOD_TYPE_IDINT10商品类型GOOD_INFOVARCHAR100详细说明ORDER_COMPANYVARCHAR30收购商企业ORDER_COMPANY_TELVARCHAR30企业联系电话GOOD_COUNTINT10数量ORDER_ADDTIMEVARCHAR15添加时间GOOD_PRICEFLOAT10商品出货价ORDER_AMOUNTFLOAT10总金额ADMIN_IDINT10录入人管理员表OURCK_ADMIN字段名称数据类型字段大小是否主键说明ADMIN_IDINT10主键管理员IDADMIN_CARDVARCHAR20管理员账号ADMIN_PASSWORDVARCHAR20密码DEPARTMENT_IDINT10所属部门ADMIN_NAMEVARCHAR20姓名PERMISSION_IDVARCHAR10权限ADMIN_SEXVARCHAR10性别ADMIN_LOGIN_TIMEVARCHAR15登陆时间ADMIN_REGIST_TIMEVARCHAR15注册时间部门表OURCK_DEPARTMENTS字段名称数据类型字段大小是否主键说明DEPARTMENT_IDINT10主键部门IDDEPARTMENT_NAMEVARCHAR20部门名称DEPARTMENT_INFOVARCHAR20说明DEPARTMENT_TIMEVARCHAR20添加时间32系统功能模块设计配置文件STRUTS214/ADMINS/MAINJSPFINDGOODACTION/INDEXJSP/INDEXJSP/ADMINS/UPDATE_PASJSPFINDDEPARTMENTSACTION/ADMINS/ADD_DEPJSPFINDDEPARTMENTSACTION/ADMINS/CTRL_DEPJSP/ADMINS/CTRL_TYPESJSP/ADMINS/UPDATE_TYPESJSP/ADMINS/CTRL_GOODSJSP/ADMINS/UPDATE_GOODSJSP/ADMINS/ADD_GOODJSP/ADMINS/CTRL_STOCKSJSP/ADMINS/ADD_STOCKJSP/ADMINS/CTRL_MARKETSJSP15/ADMINS/ADD_MARKETJSP/ADMINS/SHOW_MARKETJSPHIBERNATECFGXMLORGHIBERNATEDIALECTMYSQLDIALECTJDBCMYSQL/LOCALHOST3306/OURCKROOTROOTCOMMYSQLJDBCDRIVERMYSQL16APPLICATIONCONTEXTXMLAPPLICATIONCONTEXTACTIONXML17APPLICATIONCONTEXTSERVICEXML321通用类设计通用类也是代码重用的一种形式,他将各个功能模块经常调用的方法提取到共用的JAVA类中,例如访问数据库的DAO类容纳了所有访问数据库的方法,并同时管理者数据库的连接和关闭。这样不但实现了项目代码的重用,还提高了程序的性能和代码可读性。/通用接口类PACKAGECOMYI168DAOIMPORTJAVAIOSERIALIZABLEIMPORTJAVAUTILLIST/通用DAO接口AUTHORZHANGKAITAOPARAM模型对象PARAM主键/PUBLICINTERFACEIBASEDAO/保存模型对象PARAMMODEL模型对象20RETURN返回主键/PUBLICINTSAVEMMODEL/保存或更新模型对象PARAMMODEL模型对象/PUBLICVOIDSAVEORUPDATEMMODEL/更新模型对象PARAMMODEL模型对象/PUBLICVOIDUPDATEMMODEL/合并模型对象状态到底层会话PARAMMODEL/PUBLICVOIDMERGEMMODEL/删除模型对象PARAMID主键/PUBLICVOIDDELETEPKID/21根据主键获取模型对象PARAMID主键RETURN返回模型对象/PUBLICMGETPKID/统计模型对象对应数据库表中的记录数RETURN返回数据库表的记录数/PUBLICINTCOUNTALL/RETURN返回所有模型对象/PUBLICLISTLISTALL/分页获取所有模型对象PARAMPN页码从1开始PARAMPAGESIZE每页记录数RETURN/PUBLICLISTLISTALLINTPN,INTPAGESIZEPUBLICLISTLISTFINALSTRINGHQL,FINALOBJECTPARAMLISTDAOIMPL实现类22PACKAGECOMYI168DAOHIBERNATEIMPORTJAVAIOSERIALIZABLEIMPORTJAVALANGREFLECTPARAMETERIZEDTYPEIMPORTJAVASQLSQLEXCEPTIONIMPORTJAVAUTILLISTIMPORTORGHIBERNATEHIBERNATEEXCEPTIONIMPORTORGHIBERNATEQUERYIMPORTORGHIBERNATESESSIONIMPORTORGHIBERNATETRANSACTIONIMPORTORGSPRINGFRAMEWORKORMHIBERNATE3SUPPORTHIBERNATEDAOSUPPORTIMPORTCOMYI168DAOIBASEDAO/AUTHORZHANGKAITAOPARAM妯瀷瀵硅薄PARAM涓婚敭/PUBLICABSTRACTCLASSBASEHIBERNATEDAOEXTENDSHIBERNATEDAOSUPPORTIMPLEMENTSIBASEDAOPRIVATECLASSENTITYCLASSPRIVATESTRINGHQL_LIST_ALLPRIVATESTRINGHQL_COUNT_ALLSUPPRESSWARNINGS“UNCHECKED“PUBLICVOIDINIT23/1、通过反射获取注解“M”(即模型对象)的类类型THISENTITYCLASSCLASSPARAMETERIZEDTYPEGETCLASSGETGENERICSUPERCLASSGETACTUALTYPEARGUMENTS0/2、得到模型对象的实体名STRINGENTITYNAMEGETSESSIONFACTORYGETCLASSMETADATATHISENTITYCLASSGETENTITYNAME/3、根据实体名生成HQLHQL_LIST_ALL“FROM“ENTITYNAMEHQL_COUNT_ALL“SELECTCOUNTFROM“ENTITYNAMEPROTECTEDSTRINGGETLISTALLHQLRETURNHQL_LIST_ALLPROTECTEDSTRINGGETCOUNTALLHQLRETURNHQL_COUNT_ALLPUBLICINTSAVEMMODELSESSIONSESSIONNULLTRANSACTIONTXNULLINTID0TRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONIDINTEGERSESSIONSAVEMODELTXCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACK24FINALLYSESSIONCLOSERETURNIDPUBLICVOIDSAVEORUPDATEMMODELSESSIONSESSIONNULLTRANSACTIONTXNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONSESSIONSAVEORUPDATEMODELTXCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACKFINALLYSESSIONCLOSEPUBLICVOIDUPDATEMMODELSESSIONSESSIONNULLTRANSACTIONTXNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONSESSIONMERGEMODELTXCOMMIT25CATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACKFINALLYSESSIONCLOSEPUBLICVOIDMERGEMMODELSESSIONSESSIONNULLTRANSACTIONTXNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONSESSIONMERGEMODELTXCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACKFINALLYSESSIONCLOSEPUBLICVOIDDELETEPKIDSESSIONSESSIONNULLTRANSACTIONTXNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTION26SESSIONDELETEGETIDTXCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACKFINALLYSESSIONCLOSEPUBLICMGETPKIDSESSIONSESSIONNULLTRANSACTIONTXNULLMMODELNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONMODELMSESSIONGETTHISENTITYCLASS,IDTXCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACETXROLLBACKFINALLYSESSIONCLOSERETURNMODELPUBLICINTCOUNTALLRETURNUNIQUEGETCOUNTALLHQLSIZE27PUBLICLISTLISTALLRETURNLISTGETLISTALLHQLPUBLICLISTLISTALLINTPN,INTPAGESIZERETURNLISTGETLISTALLHQL,PN,PAGESIZEPUBLICLISTLISTFINALSTRINGHQL,FINALOBJECTPARAMLISTRETURNUNIQUEHQL,PARAMLIST/通用列表查询,当PN模型类型PARAMHQLHIBERNATE查询语句PARAMPN页码从1开始,PARAMPAGESIZE每页记录数PARAMPARAMLIST可变参数列表RETURN模型对象列表/SUPPRESSWARNINGS“UNCHECKED“PROTECTEDLISTLISTFINALSTRINGHQL,FINALINTPN,FINALINTPAGESIZE,FINALOBJECTPARAMLISTSESSIONSESSIONNULLTRANSACTIONTXNULLLISTLISTNULLTRY28SESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONQUERYQUERYSESSIONCREATEQUERYHQLIFPARAMLISTNULLFORINTI0I返回类型PARAMHQLHIBERNATE查询语句PARAMPARAMLIST参数列表RETURN/SUPPRESSWARNINGS“UNCHECKED“PROTECTEDLISTUNIQUEFINALSTRINGHQL,FINALOBJECTPARAMLIST29SESSIONSESSIONNULLTRANSACTIONTXNULLLISTLISTNULLTRYSESSIONGETSESSIONTXSESSIONBEGINTRANSACTIONQUERYQUERYSESSIONCREATEQUERYHQLIFPARAMLISTNULLFORINTI0ISESSIONACTIONCONTEXTGETSESSIONIFSESSIONGET“ADMIN“NULLLONGTIMESYSTEMCURRENTTIMEMILLIS/1000ADMINSETADMINLOGINTIMETIMETOSTRINGGETADMINSSERVICEUPDATEADMINADMINNEWSNEWSSERVICEFINDBYJADMINSADMIN,0,20FOROURCKNEWSNEWSSNEWSDATETIME1NEWDATELONGPARSELONGNEWSSGETNEWADDTIME1000NEWSSSETDEPARTMENTDEPARTMENTSSERVICEFINDBYIDNEWSSGETDEPARTMENTIDNEWSSSETNEWADDTIMEDATEFORMATDATAFORMAT2TIME1ELSELISTADMINSGETADMINSSERVICEEXISTSGETUSERNAME,GETPASSWORDIFADMINSSIZE0ADMINADMINSGET0LONGTIMESYSTEMCURRENTTIMEMILLIS/1000ADMINSETADMINLOGINTIMETIMETOSTRINGGETADMINSSERVICEUPDATEADMINADMINNEWSNEWSSERVICEFINDBYJADMINSADMIN,0,20FOROURCKNEWSNEWSSNEWSDATETIME1NEWDATELONGPARSELONGNEWSSGETNEWADDTIME100031NEWSSSETDEPARTMENTDEPARTMENTSSERVICEFINDBYIDNEWSSGETDEPARTMENTIDNEWSSSETNEWADDTIMEDATEFORMATDATAFORMAT2TIME1ELSEMESSAGE“登录失败,请检查账号或密码“RETURN“INDEX“ADMINSETDEPARTMENTSDEPARTMENTSSERVICEFINDBYIDADMINGETDEPARTMENTIDSESSIONPUT“NEWS“,NEWSSESSIONPUT“ADDTIME“,ADDTIMESESSIONPUT“ADMIN“,ADMINRETURN“SUCCESS“323系统主窗体设计主窗体是人际交互的本体,用户通过主窗体中提供的各种菜单、表格、文本框、子窗体等组件进行管理操作。本系统主界面采用的是CSSDIVJS图36系统主窗体界面功能实现代码/根据条件查找商品PUBLICSTRINGFINDGOODINFOACTIONCONTEXTACTIONCONTEXTACTIONCONTEXTGETCONTEXTMAPSESSIONACTIONCONTEXTGETSESSION/LISTPARAMLISTNEWARRAYLISTSTRINGHQL“FROMOURCKGOODSINFOWHEREGOODID0“32STRINGWHERE“STRINGORDER“ORDERBYGOODADDTIMEDESC“IFGOODNAMENULL/PARAMLISTADDGOODNAMEIFTYPEIDNULL/PARAMLISTADDINTEGERPARSEINTTYPEIDSYSTEMOUTPRINTLN“HQL“HQLWHEREORDERGOODSINFOSERVICEFINDBYHQLHQLWHEREORDER,PN,PAGESIZEFOROURCKGOODSINFOGOODGOODSSTRINGADDTIMEDATEFORMATDATAFORMAT2NEWDATELONGPARSELONGGOODGETGOODADDTIME1000GOODSETGOODADDTIMEADDTIMEGOODSETTYPETYPESSERVICEFINDBYIDGOODGETTYPEIDGOODSETADMINADMINSSERVICEFINDBYIDGOODGETADMINIDTYPESTYPESSERVICEFINDALL0,100SESSIONPUT“TYPEID“,TYPEIDSESSIONPUT“GOODNAME“,GOODNAMESESSIONPUT“TYPES“,TYPESSESSIONPUT“GOODS“,GOODSRETURN“SUCESS“1设计菜单栏33324商品列表模块设计商品列表模块负责添加企业的进货信息,他根据进货人员提供的单据,将采购商品的名称、编号、类型、规格、数量等信息记录到数据的库存表中。商品列表模块窗体界面如图39所示。添加进货商品1进货统计在BOTTOMPANEL面板中布置了多个文本框,用于统计品种数量、货品总数、合计金额等商品信息,在添加货品之后,要实现商品信息的自动统计,既要在TABLE表格的34PROPERTYCHANGELISTENER事件监听器编写统计代码。这里将统计代码编写在COMPUTEINFO方法,然后在事件监听器中调用。当TABLE表格发生属性改变事件是,事件监听器首先会检测发生的事件类型,也就是判断发生了那种更改属性的事件,如果事件类型是TABLECELLEDITOR则说明术语表格编辑事件,这时应该针对表格的修改事件去调用COMPUTEINFO方法执行产品进货的统计业务并将结果显示在相应的组件上。2商品入库325销售单模块设计商品销售时进销存管理中的重要环节之一,进货商在入库之后就可以开始销售。销售单模块主要负责根据经手人的销售单据,操作进销存管理系统的库存商品和记录销售信息,方便以后查询和统计。1设计销售单窗体352/更新或添加出库信息当数据库无此名字的商品时,先添加此商品,再添加出库信息更新时同时更新商品信息,如数量RETURN/PUBLICSTRINGADDMARKETORDERACTIONCONTEXTACTIONCONTEXTACTIONCONTEXTGETCONTEXTMAPSESSIONACTIONCONTEXTGETSESSIONOURCKADMINSADMINOURCKADMINSSESSIONGET“ADMIN“OURCKGOODSINFOGOODSINFOINFOSERVICEFINDBYIDINTEGERPARSEINTIDLONGTIMESYSTEMCURRENTTIMEMILLIS/1000MARKETSETADMINIDADMINGETADMINIDMARKETSETGOODCOUNTINTEGERPARSEINTGOODCOUNTMARKETSETGOODINFOGOODINFOMARKETSETGOODPRICEFLOATVALUEOFGOODPRICEMARKETSETGOODTYPEIDGOODSINFOGETTYPEIDMARKETSETORDERAMOUNTFLOATVALUEOFGOODPRICEINTEGERPARSEINTGOODCOUNT36MARKETSETORDERCOMPANYORDERCOMPANYMARKETSETORDERCOMPANYTELORDERCOMPANYTELMARKETSETORDERNAMEGOODSINFOGETGOODNAMEMARKETSETGOODIDGOODSINFOGETGOODIDMARKETSETORDERADDTIMETIMETOSTRINGORDERSSERVICESAVEMARKETMARKETRETURNFINDMARKETORDER37第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 颈椎手术术前护理
- 商业街环境管理
- 银行辅导保密协议书
- 六年级遵守纪律协议书
- 银行上门收款协议书
- 配套设施移交协议书
- 轻微工伤和解协议书
- 车辆租用解除协议书
- 护理用药安全培训
- 酒庄设备转让协议书
- 基层数字化治理能力提升的内在逻辑与创新路径
- 《公路桥梁阻尼模数式伸缩装置》
- 南京市房屋租赁合同(试行)(居间服务版)
- ICU病人镇静镇痛护理
- 2024专利代理人考试真题及答案
- 2024年高考全国甲卷英语试卷(含答案)
- 网站更新维护合同模板
- DB11T 466-2017 供热采暖系统维修管理规范
- 广东开放大学2024年秋《国家安全概论(S)(本专)》形成性考核作业参考答案
- 巨量-营销科学(初级)认证培训考试题库(含答案)
- 2024年河南省机关单位工勤技能人员培训考核高级工技师《职业道德》题库
评论
0/150
提交评论