资源描述
商场进出货品管理系统研究与设计武汉东湖学院本科毕业论文商场进出货品库存管理信息系统研究与设计院(系)名称:计算机科学学院专业名称:软件工程学生姓名:易梦玲指导教师:李曙光商场进出货品库存管理系统研究与设计摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活中不可缺少的辅助工具。各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。以前开发Windows应用软件是专业人员的工作,需要掌握许多专业知识和经过特殊的培训才能胜任。现在不同了,即使你没有接受过严格的程序设计训练,使用JSP也一样能够开发出功能强大、适合自己特殊需求的应用程序了。 目前随着商场的规模不断扩大,货品流通量也逐渐攀升,因此则需要信息化的技术来实现这种大规模的需求。针对于货品进出库,而设计出了商场货品进出管理系统,来对复杂的货品进出进行管理,从而简化了人工手工操作的繁琐,走向了更简便的操作手法。此系统包含了以下几个模块:系统登录,货品入库,货品查询,货品更改,货品出库,及人员信息的增、删、查、改等一系列简单操作。从而实现对货品,人员的全面,动态,及时的管理。本文系统的介绍了此系统开发的背景,过程。分别对其开发环境,详细设计过程,及各个功能模块的设计与实现,及界面设计都有详细描述。关键词: servlet ;oracle数据库;jspStore goods in and out of the inventory management system research and designAbstractWith economic development, social progress, the computer and went to work learning and our daily lives, we become an indispensable tool in everyday life. All people without special training will be able to use computers to complete numerous complex. However, although now the world has been filled with an over-abundance of software, but they still can not meet the special needs of the various users, it also had to develop software suited to their particular needs. Professional Windows application software development before the work is needed in many professional knowledge and competence through special training. Different now, even if you have not received strict procedures designed training, the use of JSP also like to develop a powerful, and suited to their special needs applications.At present the malls scale expands unceasingly, goods circulation also gradually rise, so you need to information technology to achieve the needs of this mass. For outbound goods, goods in and out of the management system and designed the mall, to the complex of goods in and out of management, simplifying the tedious, artificial manual operation to the technique and simpler operation. This system includes the following several modules: system login, goods storage, query goods, goods changes, goods delivery, and personnel information to add, delete, check, change and a series of simple operations .So as to realize the goods, the comprehensive, dynamic and timely management.This paper introduces the system development background, process .Respectively on the development environment, the design process in detail, and each function module design and implementation, and interface design are described in detail.Key word : servlet , oracle database , jsp目录前言61系统设计71.1系统开发平台71.2系统运行环境71.3系统相关技术分析71.3.1 JSP简介71.3.2 ORACLE简介81.3.3 MyEclipse简介91.3.4 JDBC简介92 问题定义112.1开发背景112.2可行性研究112.2.1技术可行性112.2.2经济可行性122.2.3开发环境可行性122.2.4社会因素考虑133.系统需求分析与总体设计143.1功能需求143.2软件结构设计153.3数据库设计164.系统详细设计184.1登录模块184.2系统主界面194.3入库操作214.4出库操作224.5员工管理234.6退出系统285.结论296.参考文献31致谢32附录33前言商场货品进出管理系统用计算机管理商场库存进出管理的一种计算机应用技术的创新,在计算机还未普及之前库存管理都是由工作人员手工书写的方式来操作的.现在一般的商场都采用计算机智能化管理,采用计算机作为工具的实用的计算机商场库存管理程序来帮助管理员进行更有效的商场库存管理工作。商场进销存管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。现在这个社会,商场的货物流通率已经呈线性的增长,随着人们对购物的需求越来越大,商场需要加大自己货物的流通量以满足社会的需求。因此,信息化管理商场进出货品,已经是不可否认的了,只有运用这种管理方式,才能达到现在这种快速,高效的营业方式,若想能在众多商场竞争中占有一席之地,则实现这种管理方式已是必不可少的了。商场进出货品管理系统利用现代化计算机智能化来管理商场货品进出仓库,为此,运用这个系统可以大大的节省人力,物力,还可以提高员工工作效率,能够迅速的处理大量货品进出仓库的变动,更不容易出现失误,能正确,而直观的反映货品进出的状态及结果,而此仅仅只需适当熟悉系统简单操作便可以达到,能够大大的节约时间成本,且提高效率,大大的增加了 商场的效益。1系统设计1.1系统开发平台通过对商品进出货品管理系统进行详细的需求分析,此系统采用了面向对象的java开发语言作为开发工具,针对其语言较为简单,面向对象编程,分布式,而相对而言是一门较为健壮且安全的特点,选用其作为此系统的编程语言成为了一个不二选择;又因java语言的可移植性且是解释性语言,早就了其可以在任何系统平台运行,具有跨平台型。针对数据库,则选用了运用较为广泛的oracle数据库系统作为支持。1.2系统运行环境此次运行环境,我采用的是Windows操作系统,因其具有可视化,直观,一个多任务操作系统,使用起来较为简单,使用人群较为广泛。1.3系统相关技术分析1.3.1 JSP简介JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。1.3.2 ORACLE简介1、ORACLE: 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。2、特点:1、完整的数据管理功能: 1)数据的大量性 2)数据的保存的持久性 3)数据的共享性 4)数据的可靠性2、完备关系的产品: 1)信息准则-关系型DBMS的所有信息都应在逻辑上用一中方法,即表中的值显式地表示; 2)保证访问的准则 3)视图更新准则-只要形成视图的表中的数据变化了,相应的视图中的数据同时变化 4)数据物理性和逻辑性独立准则4、用ORACLE能轻松的实现数据仓库的操作。1.3.3 MyEclipse简介MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF , Struts ,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。1.3.4 JDBC简介JDBC 是个“低级”接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是“对用户友好的”接口,它使用的是一种更易理解和更为方便的 API,这种 API 在幕后被转换为诸如 JDBC 这样的低级接口。在编写本文时,正在开发两种基于 JDBC 的高级 API:一种用于 Java 的嵌入式 SQL。至少已经有一个提供者计划编写它。DBMS 实现SQL:一种专门设计来与数据库联合使用的语言。JDBC 要求 SQL 语句必须作为 String 传给 Java 方法。相反,嵌入式 SQL预处理器允许程序员将 SQL 语句直接与Java 混在一起使用。例如,可在 SQL 语句中使用 Java 变量,用以接受或提供SQL 值。然后,嵌入式 SQL 预处理器将通过 JDBC 调用把这种 Java/SQL 的混合物转换为Java。关系数据库表到 Java 类的直接映射。JavaSoft 和其它提供者都声称要实现该API。在这种“对象/关系”映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取数据所需的 SQL 调用将在“掩盖下”自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。随着人们对 JDBC 的兴趣日益增涨,越来越多的开发人员一直在使用基于 JDBC 的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。JDBC由一系列连接数据库、执行SQL语句和操作结果的类和接口构成,其主要作用概括起来有如下三个方面: (1) 建立与数据库的连接。(2) 向数据库发起查询请求。(3) 处理数据库返回结果。2 问题定义2.1开发背景随着我国经济的高速发展,人们对于网络的需求已经达到每家每户,甚至于每个人,因此对于一个相对于想要发展,并能在这个激烈的经济市场上占有一席之地,则必须得实现现代化的管理方式-信息化管理。在如今这个速度节奏飞快,步伐紧凑的社会形势下,效率则是每个个体及团体所必不可缺的。而信息化管理方式则完全符合这种要求,它能实现管理的自动化,提高管理业务的处理效率,更重要的一点,其处理问题及事务的准确性更高,从而避免了一些不必要的认为失误。商场作为现代产业的一个必须品,人们生活不可缺失的一部分,现在它对外的需求也是越来越大。而作为商场最核心的货物管理也是得精细管理的。而相对于以前传统的人工管理登记工作,管理货品进出情况,将计算机这一种信息化处理器融入到这种管理方式中,它将会有可能带来意想不到的优越性,同时也为商场强大的货物流通量打下良好的后盾。采用信息化管理方式将会成为商场进入现代化的一个重要标志。它给商场管理带来了明显的经济效益和社会效益。而它主要表现在如下几个方面:提高了商场管理人员的工作效率,大大减少了繁琐的流程,事务杂乱无章的弊端。还可以减少对人员管理的漏洞,减少了一些不必要的失误。还可以清晰的对货物进行管理,其中任何流程都可以非常透明化的了解。使货物供给更加的流畅。2.2可行性研究2.2.1技术可行性1)全面考虑开发过程中所涉及的所有技术问题;此次系统开发中,主要会涉及到:a. 前台页面的设计,要使用html+css样式实现前台页面的制作,展现一个管理系统所展现的简单大气,易操作的功能。b. 前台页面向服务器请求操作,及服务器向前台进行相应操作的响应。这里将会运用到servlet+jsp技术,实现每个操作的正确性。c. 数据库交互,在这个管理系统的最核心的就是数据的管理,及与数据库的连接。利用JDBC完成与数据库的连接,正确的对数据进行增、删、改、查。确保数据的正确性,从而达到与前台页面的一致性。2)尽可能采用成熟的技术;本次开发中全部采用的是成熟稳定的开发语言及工具,在一定条件下都是属于相对稳定成熟的技术,而会用到的是Java,servlet,oracle;这些技术都是市面上广泛使用的,信赖度都是值得采用的。3)技术可行性评价此次开发前,已对此系统进行了充分的详细研究,对其做了充分的功能需求分析,对系统运行和开发环境都做了充分的分析。2.2.2经济可行性顺应现在社会的发展,货品进出管理系统可以大大的提高货物管理的效率,还可以大大的节省人力资源,可以尽可能最大化的提高商场的经济效益。1) 系统给企业带来的经济效益货品进出管理系统是一个简单,容易上手的管理系统,因其简单的操作手法,可以为商场节省大量的人员开销;而且货品进出管理系统操作快速,管理方便,可以大大的节约商场管理时间,同时能够改善商场秩序。而商场进出货品管理系统是一个智能化的管理,易于查询,易于维护。都将为商场带来可观的经济效益。2) 企业的经济承受能力通过对商场货品管理的统计和调查,货品进出管理系统是长期着力于货品管理人员和大量货品的管理上,而对于此次软件开发上只是一个短期的投入,对于商场的长远发展的考虑上,对于开发这样一个省时省力的管理系统是利益可行的,商场是完全有经济能力承担此次费用。2.2.3开发环境可行性Java是一种安全,稳定的开发语言,开发的程序易于维护,易于管理,具有较强的可移植性,可以在多种不同的平台上运行,不会受平台的不同而出现差异性。而数据库则选择oracle这种较为大众的数据库来支持,对数据都是有一定的保护功能。对于运行环境则是针对于易于操控,可视图化的操作系统,只需稍加练习,便可熟练掌握系统操作功能。2.2.4社会因素考虑针对于语言,我们选取的是可移植性强的Java语言,而系统则是选用可视化界面,易于操作和使用。对于使用的人员,即使不需要太多电脑知识便可以轻松掌握。而系统则是采用友好的交互界面,易于上手,一试即会的操作,不需要与专业人员进行操作,已于平常的维护。综上所述,商场货品管理系统都是一个具有较高开发价值的软件。3.系统需求分析与总体设计3.1功能需求目前随着商场的规模不断扩大,货品流通量也逐渐攀升,因此则需要信息化的技术来实现这种大规模的需求。针对于货品进出库,而设计出了商场货品进出管理系统,来对复杂的货品进出进行管理,从而简化了人工手工操作的繁琐,走向了更简便的操作手法。商场作为现代产业的一个必须品,人们生活不可缺失的一部分,现在它对外的需求也是越来越大。而作为商场最核心的货物管理也是得精细管理的。而相对于以前传统的人工管理登记工作,管理货品进出情况,将计算机这一种信息化处理器融入到这种管理方式中,它将会有可能带来意想不到的优越性,同时也为商场强大的货物流通量打下良好的后盾。采用信息化管理方式将会成为商场进入现代化的一个重要标志。它给商场管理带来了明显的经济效益和社会效益。而它主要表现在如下几个方面:提高了商场管理人员的工作效率,大大减少了繁琐的流程,事务杂乱无章的弊端。还可以减少对人员管理的漏洞,减少了一些不必要的失误。还可以清晰的对货物进行管理,其中任何流程都可以非常透明化的了解。使货物供给更加的流畅。针对以上的需求分析,初步确定此系统包含如下几个功能模块:1. 系统登录:员工需要输入用户名和密码来进行登录系统,若密码或用户名错误则需要提示出友好信息。用户名和密码正确则跳转进入系统主界面。2. 货品查询,及总体清单:进入系统主界面后菜单栏中货品查询点击后,则可以查询所有货品信息一览表,在此表上可根据货号进行条件查询,查询出指定的对应货品,进行明确查找。3. 货品入库:顾名思义,当有新货品要入库时,点击此菜单,则可以完成入库操作。4. 货品出库:顾名思义,当需要完成货品出库操作时,此界面可以完成,只需输入货品ID,及所需要出库的数量即可。5. 员工信息查询,添加,修改及删除:次界面则是对员工信息的管理。在此界面,可以对员工信息进行增,删,查,改。统一简便的管理员工信息。3.2软件结构设计输入错误重新登录系统登录商品数据流图:确定登录商品更改删除商品查询商品入库商品数据库图3.1输入错误重新登录系统登录员工数据流图:确定登录员工增加员工更改删除员工查询员工数据库图3.2分组处理商品录入商品数据库商品查询数据修改查询结果商品名称对照表图3.3 系统流程图3.3数据库设计本系统中的各种功能都是基于数据库上所开发的,数据库自然是最核心的,因此数据库作为此次系统设计中必不可缺的,此系统中使用的是oracle数据库,为了方便管理,也利于访问,我们将充分的设计好数据库,以供员工进行数据操作。经过需求分析,需要建立以下几个数据表。1. 货品表(goods)包含:商品ID,商品名称,库存量,出产地,重量,入库日期;如表3.1所示:表3.1 货品表表名中文名id货品IDname货品名称count库存量location出产地weight重量date_in入库日期 2. 员工表(users)包含:员工ID,员工姓名,密码,性别,电话,住址;如表3.2所示:表3.2 员工表 表名中文名 userNo员工IDusername员工姓名password密码sex性别tel电话address住址 4.系统详细设计4.1登录模块此模块是用来员工进入系统前的一个验证界面,这样可以控制权限,以防不相关人员进行货品的篡改。登录需输入员工姓名和密码,只有姓名与密码都与数据库的相匹配,才可以进入主界面。图4.1登录界面登录信息有误:当用户名与系统不匹配是则会出现警示语!这一块是利用ajax向后台进行异步的访问从而达到的效果,起到一个友好界面的效果。图4.2 登录信息有误界面4.2系统主界面当登录成功后会直接跳转到货品管理系统主界面,主界面如下图4.3所示;此界面会直接显示所有货品的全部信息,可以对整体货物有个比较直观的了解。在货品查询上方有一个可以根据货品ID进行直接查询的界面,可以通过此界面,对特定货品进行查询;图4.3 系统主界面图例如对货品001查询:图4.4 特定货品查询在此界面中,还有一个“添加货品”的按钮,通过此按钮可以直接进行入库操作,直接跳转到入库界面。图4.5 添加货品界面向其中添加数据,并提交后会跳转到货品管理界面,也就是所有货品清单列表。通过此语句请求servlet,进入添加货品方法,然后重定向到goods_list.jsp页面,也就是货品管理页面。图4.6 输入货品信息并提交下图就是添加成功后,跳转到货品清单界面,其中有显示新添加成功的货品信息;图4.7提交后,货品列表显示新的添加数据4.3入库操作若进入系统后想要直接进行入库操作,则可以直接点击首页中菜单选项入库操作,其添加手法和以上添加货品是一样的。入库时,会做一个简单的判断,当输入货品后,系统会判断一下,该货品是否在库存中存在,若在库存中存在,则会在原有的库存数量中增加,若没有,则会重新插入一条新的数据。/进行入库操作public void goods_in(Goods goods)ConnDB cd=new ConnDB();boolean flag=isExits(goods.getId();if(flag)String sql=update goods set count=(count+?),date_in=? where id=?;Connection conn=cd.getConn();try PreparedStatement ps=conn.prepareStatement(sql);ps.setInt(1, goods.getCount();ps.setString(2, goods.getDate_in();ps.setString(3, goods.getId();ps.executeUpdate();catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();elseaddGoods(goods);4.4出库操作主界面中菜单选项中,有一栏出库操作。出库只需填写,你所要出库的货品的货号和货品要出库的数量;它实现的原理是:1先根据货号查找该货品对应的货品信息,然后再其货品数量上减去输入的出库数量,然后更新数据库。操作完成后,在重定向到goods_list.jsp界面,从中可以看到货品更改后的信息。出库界面如下:图4.8 出库界面例如,要对货品021出货5件;图4.9 出库操作当点击确认后,后台对数据进行了更改,变化如图4.10和4.11所示;图4.10 出库前图4.11出库前4.5员工管理本系统中还包括了一个比较重要的板块就是员工信息管理板块,在此版块中可以对员工信息进行查询,修改,删除,添加等功能,这能非常方便的对员工信息统一管理。操作也非常简单。图4.12 员工管理主界面查询:在此界面最上方有通过员工ID来查询某一位员工的具体信息,其具体操作步骤如下:1.在用户ID框中输入你想要查询的员工的ID;图4.13 员工查询2.点击查询后,页面会显示出对应的员工的所有信息;图4.14 对应员工查询结果在员工列表中可以看到,每一条员工信息中,都有对应的操作选项,其中有两个选项,分别是修改和删除;顾名思义,通过这两个选项可以对每一个员工信息进行修改和删除;修改:点击修改后,界面会进入到一个修改界面,这个操作,前台会向后台传递你所点击的员工对应的员工ID,然后根据这个ID查询到这个员工的所有信息并按照设定的格式显示在修改界面中,形成一个初始值;具体效果如下图所示:图4.15 员工信息修改界面如上图所示,跳转到修改界面时,会把原有的员工信息全部显示在上面,若想对哪一部分进行修改,都可以改动(员工编号为只读项,不可修改),当修改完后,点击数据提交,后台会对数据库中的相应信息进行改动,然后直接跳转到员工信息列表界面;图1.16和图4.17为改动前后的对比图;图4.16 员工修改前效果图图4.17 员工修改后效果图添加员工信息:添加员工信息,点击该界面中添加数据按钮,页面将会转换到添加员工信息页面,如图:图4.18;图4.18 添加员工信息进入添加员工信息界面后,按照需要填写的信息,完成相应的信息填写,填写后,点击数据提交,前台将会向服务器发送请求,后台将会向数据库插入一条新的员工信息,然后更新数据库,然后 servlet 会直接转会页面user_list.jsp界面。具体效果图,如图4.19,图4.20,图4.21所示;图4.19 添加员工信息界面图4.20 添加员工前列表图4.21 添加员工后列表由图4.20,图4.21对比可知:后图较前图多了一条数据,多的一条数据正式图4.19中所填写的一条数据;删除指定员工信息:删除操作较为简单,在每一条信息后都有一个删除操作,点击删除操作后便会将所选员工信息删除,此删除操作不但会将页面中的一行显示给删除,也要将数据库中的对应员工信息删除;其前后对比图如:图4.22,图4.23;图4.22 删除员工前图4.23 删除员工后由图4.22,图4.23可看出已成功将010号员工成功删除;4.6退出系统在界面菜单栏中有一个菜单退出系统;点击这个按钮界面将会直接跳转到系统登录界面;此实现方法如下:5.结论经过一个月的努力,这次的毕业论文基本也大致完工了。一个月里,感觉自己经历了一个非常大的蜕变;当最先开始任务下达时的茫然,不知所措,完全不知道从何入手,然后冷静思考了一两天,开始决心去着手设计,其中时不时的向同学讨教,向老师咨询。终于大致有个基本思路和方案。于是就开始了我的毕业设计论文。首先,针对于我的论文题目,进行了一些市场调研,上网搜索,大致了解了此系统的一个运行流程,然后划分一些系统的角色,及板块,大致有了个基本框架。接下来就是系统编码部分,在这开始,先要决定好系统的运行环境,及实现方法;经过不断的比对及参考,最后决定使用jsp,servlet,JDBC来实现编码部分,而数据库则选择的是oracle数据库,Servlet的运行容器则是tomcat,编码软件则是Myeclipse;完成了这些准备工作,于是就开始了正式的编码之路。这次相对于以前不同可能是第一次一个人独立的完成一整个较为完整的系统,确实对于自己有点不小的挑战,平常更多的是接触书本上的知识,现在是真的要将其运用到实际中,就要很好活学活用,当然在编码中有时会遇到感觉很小的问题,但是却又是那么的容易犯,有时候真的会被运行台中的一行行信息把自己弄的灰头土脸,刚开始没怎么太学会如何补异常,但是随着编写的时间长了,从中学到了一些简要的道理。大概有如下几点:1.在编码过程中,尽量写一个实现功能时就要进行测试,这样就能及时的发现错误,也会缩小犯错范围,也会比较好查找出异常在哪儿;2当遇到控制台报一连串错误时,不要惊慌,烦躁,先理清自己的思路,查找最原始报错的代码行,然后一步步分析,一般都能分析出来,对于一些非常常见的异常,要想看见老朋友一样淡定的对待,类似于空指针异常,下指标越界,这些都能够在第一时间就能够查找出来的。3当遇到实在少见的错误或异常时,这个时候就可以求助于网上的一些高人,将报出的异常信息直接复制粘贴到百度上搜索,往往就会有许多解决方法就会罗列出来,而我目前所犯的错误基本上全都可以在网上找到解决方案,利用现在这个信息发达的时代,很多问题都能够很顺其自然的解决了。所以当遇到问题时,解决方法有很多,只要以一种平常心去对待,往往都能够迎刃而解,不是有这样的一句话,没有能永远不出错的程序员,不出错只代表代码敲的还不够多。所以正确的面对异常,是通往成功程序员的必经之路。这次毕业设计中除了锻炼了自己的解决异常的能力,还让我明白在遇到一个相对比较完整的一个程序设计时,第一件事并不是直接拿手敲代码,而是要先做一些需求分析,结构分析,充分的了解自己要编写的细节,每一个细节落实下来,那代码去实现,往往就是最简单的了,因此最前面的需求分析报告则是最重要的了。因此只要头打好了,接下来的也将会非常顺利的解决。此次货品进出管理系统虽然基本的设计,功能也都实现了,但是细细看来还是有一些模块与功能还有待完善,还是存在了一些不足,这就需要日后自己不断的学习与进步,随着学习内容越来越丰富,所做出来的成品也将会越来越完善,这将是一个学无止境的过程。总之,通过这一个月的设计与论文编写,自己学到了许多以前不知或不明白的事务,包括编程上的技巧,也有做任何事情都要有一个清晰的思路,不能盲目的想到了什么就做什么的杂乱无章的思想。对待任何事情和错误都要通过正确的途径和方法去解决,前万不要抱怨,也不要遇到一点小挫折就放任自流直接灰心,相信只要抱有耐心与细心,任何事情都能够迎刃而解的。而这些都将会在未来的工作生活中起到非常重要的作用。所谓实践出真知,这句名言充分的在这次毕业设计中体现出来了。6.参考文献1 作者.朱福喜 书名.Java语言基础教程 出版单位.清华大学出版社2 作者.金名 书名.数据结构与算法分析(Java语言描述)(第2版) 出版单位.清华大学出版社3 作者. 张晓龙 书名.Java2程序设计基础 出版单位.清华大学出版社4 作者.束尧 书名.Eclipse 权威开发指南(第2版) 版次.第1版 出版单位.清华大学出版社.2006-12-1 5 作者. 魏茂军 张文建 姜云善 刘全民等 书名. JSP案例开发 出版单位. 中国水利水电出版社6 作者.唐有明等 书名.JSP动态网站开发基础练习+典型案例 出版单位.清华大学出版社7 作者.张海藩 书名.软件工程导论(第四版) 出版单位.清华大学出版社8 作者.张怀庆 书名.Java 案例精粹150例 出版单位.冶金工业出版社9 作者.侯文彬等 书名.网页设计教程 出版单位.清华大学出版社10 作者.刘晓华等 书名.精通Java核心技术 出版单位.电子工业出版社 11 作者.陈禹 书名.信息系统分析与设计 出版单位.电子工业出版社M 出版年份:1986年12 作者.伍俊良 书名.管理信息系统开发与应用M 出版单位.科学出版社出版年份:1997年13 作者.柏亚军 书名.JSP编程技巧 出版单位.人民有点大学出版社 出版年份:200114 作者:王浩然 书名.Oracle9i初学者指南 出版单位.中国电力出版社 出版年份:2003 年 15 作者.Joshua 书名.Bloch Effective Java Programming Language Guide出版单位.Addison-Wesley Professional 出版年份: 05 June, 200116 作者: Kathy Sierra / Bert Bates / Sierra Kathy / Bates Bert 书名.Head First Java, 2nd Edition 出版单位. OReilly Media出版年份:2005-02-09致谢在这一个月内,我完成了系统的编码设计和论文的编写,对自己来说是一个不小的挑战,当然本次论文的完成少不了指导老师的辅导与帮助,再次表示中心的感谢。在我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。这几个月以来,李老师不仅在学业上给我以精心指导,同时还在思想给我以无微不至的关怀,在此谨向李老师致以诚挚的谢意和崇高的敬意。同时要在此感谢大学四年里,教导我的老师们,是你们让我学到这些宝贵的知识,丰富了我的文化素养,也充实了我的大学生活。与此之外还要感谢学院的各位领导与老师,这四年,基本上超过半数的时间都是在学校度过,不管在学习上或者生活上都有教导我,让我真真实实的彻底的成为了一名优秀素质的学生。最后,还要感谢大学四年一起生活,玩耍,学习的同窗们,你们都有在生活,学习上帮助我很多,也陪我一起健康的成长度过了这大学生活。包括在这次论文中我们一起探讨,学习,也因为有你们的帮助我很顺利的完成了这次论文的写作。感谢有你们大家的陪伴! 附录以下是此次系统工程中,所有的代码目录:后台代码展示:com.dao.GoodsDao:package com.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.pojo.Goods;import com.pojo.User;import com.util.ConnDB;public class GoodsDao /根据id查询货品信息public Goods getGoods(String id)ConnDB cd=new ConnDB();Goods goods=new Goods();String sql=select * from goods where id=?;Connection conn=cd.getConn();PreparedStatement ps;try ps = conn.prepareStatement(sql);ps.setString(1, id);ResultSet rs=ps.executeQuery();if(rs.next()goods.setId(rs.getString(id);goods.setName(rs.getString(name);goods.setCount(rs.getInt(count);goods.setLocation(rs.getString(location);goods.setWeight(rs.getDouble(weight);goods.setDate_in(rs.getString(date_in); catch (SQLException e) e.printStackTrace();return goods;/查询库存中所有货品信息public List getAllGoods()ConnDB cd=new ConnDB();List list=new ArrayList();String sql=select * from goods;Connection conn=cd.getConn();try PreparedStatement ps=conn.prepareStatement(sql);ResultSet rs=ps.executeQuery();while(rs.next()Goods goods=new Goods();goods.setId(rs.getString(id);goods.setName(rs.getString(name);goods.setCount(rs.getInt(count);goods.setLocation(rs.getString(location);goods.setWeight(rs.getDouble(weight);goods.setDate_in(rs.getString(date_in);list.add(goods); catch (SQLException e) e.printStackTrace();return list;/添加一条货品信息public void addGoods(Goods goods)ConnDB cd=new ConnDB();String sql=insert into goods values(?,?,?,?,?,?);Connection conn=cd.getConn();try PreparedStatement ps=conn.prepareStatement(sql);ps.setString(1, goods.getId();ps.setString(2, goods.getName();ps.setInt(3, goods.getCount();ps.setString(4, goods.getLocation();ps.setDouble(5, goods.getWeight();ps.setString(6, goods.getDate_in();ps.executeUpdate();ps.close();conn.close(); catch (SQLException e) e.printStackTrace();/进行出库操作public void goods_out(String id,int count_out)ConnDB cd=new ConnDB();String sql=update goods set count=(count-?) where id=?;Connection conn=cd.getConn();try PreparedStatement ps=conn.prepareStatement(sql);ps.setInt(1, count_out);ps.setString(2, id);ps.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();/进行入库操作public void goods_in(Goods goods)ConnDB cd=new ConnDB();boolean flag=isExits(goods.getId();if(flag)String sql=update goods set count=(count+?),date_in=? where id=?;Connection conn=cd.getConn();try PreparedStatement ps=conn.prepareStatement(sql);ps.setInt(1, goods.getCount();ps.setString(2, goods.getDate_in();ps.setString(3, goods.getId();ps.executeUpdate();catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();elseaddGoods(goods);/根据货号看货品是否存在public boolean isExits(String id)ConnDB cd=new ConnDB();String sql=select count(*)num from goods where id=?;Connection conn=cd.getConn();PreparedStatement ps;try ps = conn.prepareStatement(sql);ps.setString(1, id);ResultSet rs=ps.executeQuery();while(rs.next()int num=rs.getInt(num);if(num0)return true; catch (SQLException e) e.printStackTrace();return fals
展开阅读全文