版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
某企业库存管理信息系统设计所在学院管理学院班级信息管理与信息系统1班姓名学号200922317指导教师起止时间2013-4-2013年06月10日摘要随着我国今年来经济的不断繁荣发展以及企业所处市场竞争环境的不断变化,社会对于企业尤其是大中型企业的生产经营提出了更高的要求,这就要求企业必须综合利用各种先进的生产制造技术。在计算机网络与信息技术的支持下,改进企业原有的生产经营模式和组织结构,只有这样才能保证企业良好健康的发展,并能在市场竞争中赢得更多的份额。本毕业设计的主要内容是设计并且实现一个基于web技术的企业库存管理信息系统,该系统主要以j2EE作为开发系统的前提基础,用myeclipse作为系统的开发工具,以MYSQL作为系统的数据库,同时也运用了界面美化工具对用户界面进行了一定的改善,该系统使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。关键词:库存管理系统;MYSQL;JAVA;JSP
ABSTRACTWithChina'srisingprosperityandeconomicdevelopmentthisyear,aswellastheenterprisecompetitioninthemarketenvironmentchanging,socialproductionandoperationofenterprises,especiallylargeandmedium-sizedenterprisesputforwardhigherrequirements,whichrequirestheenterprisemustcomprehensiveutilizationofallkindsofadvancedmanufacturingtechnology.Withthesupportofcomputernetworkandinformationtechnology,improvetheenterpriseproductionandoperationoftheoriginalmodelandorganizationalstructure,onlyinthiswaycanguaranteegoodhealthdevelopment,andtowinmoreshareinthemarketcompetition.Themaincontentofthisgraduationdesignistodesignandimplementanenterpriseinventorymanagementinformationsystembasedonwebtechnology,thesystemismainlybasedonj2EEastheprerequisiteofthedevelopmentsystem,usingmyeclipseassystemdevelopmenttool,usingMYSQLasdatabasesystem,butalsousethetoolinterfacebeautificationtotheuserinterfacewasimproved,thesystemUSEStheJAVAlanguagedevelopment,taketheJSPpagedynamicpagetechnologydevelopment.Thesysteminterfaceissimpleandconvenientoperation,easytomaintain.KeyWords:inventorymanagementsystem;MYSQL;JAVA;TheJSP
目录摘要 各符号表示的含义如下:A.外部项:指不受系统控制,在系统以外的事物或人,它表达了该系统数据处理的外部来源和去处。B.数据流:数据流表明了数据的流动方向及其名称,它是数据载体的表现形式之一。D.数据存储:用来指明数据保存的地方。P.处理功能:表达了对数据处理的逻辑功能SKIPIF1<0图2-7业务流程图表示符2.9界面需求界面设计成为评价软件质量的重要依据,好的用户操作界面可以提高企业公司的工作效率,同时也可以为用户提供更好的操作体验,有助于增强用户使用系统时的兴趣。良好的动态页面可以更好地服务于企业公司的用户的需求。输入输出设计则是这其中的重要环节,在本系统中,针对不同的用户,其输入输出如下:⑴输入设计:系统管理员用户:可以进行库房的设置以及理由的设置,其中对库房的设置包括库房名、库房面积、最大货物量、报警的上下限设置,理由的设置包括入库、出库、调度的设置。对仓库管理员的设置包括可以添加新的用户。对出入库调度的管理包括审核出入库订单、审核内部调入调出单据。对于动态库存的管理包括动态库查询、出入库的明细查询、以及库存的盘点统计。报警管理主要负责报警的查询。仓库管理员用户:可以对产品进行管理,包括产品名、生产地址、供应商等产品信息的设置。对产品的出入库管理,包括产品的出入库登记和查询。对于出入库调度管理,包括内部调入调出申请、内部调入调出查询等。同样包括动态库存管理以及报警管理。⑵输出设计:系统管理员用户:管理公司总库存情况的信息显示,录入更改后各个库房库存产品的结果显示,可实时对库房产品的调度进行跟踪、统计,同时根据仓库管理员提交的产品情况,准确掌握产品库存的各个方面的信息。仓库管理员用户:对自己负责对应的库房的产品进行实时的记录,了解产品去向,并将相应的结果反映在操作的页面上,操作后显示产品的剩余库存、调拨的产品数量、以及其他库房产品的剩余数量等信息。
第3章系统总体设计3.1总体功能模块本程序主要分系统管理员和仓库管理员两个权限。总功能图如图3-1所示。图3-1系统功能需求分析本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:⑴系统具有简洁大方的页面,使用简便,友好的错误操作提示。⑵系统管理员具有系统的库存基础信息管理、仓库管理员管理、出入库调度管理、动态库存管理、报警管理功能。⑶仓库管理员具有产品管理、入库管理、出库管理、出入库调度管理、动态库存管理、报警管理功能。⑷具有较强的安全性,避免用户的恶意操作系统管理员功能模块图说明:。⑴库存基础信息管理模块:在该模块中定义了包括对库房设置和理由设置等操作。⑵仓库管理员管理模块:在该模块中定义了对仓库管理员信息的管理,其功能包括仓库管理员的添加,修改,删除,查询等操作。⑶出入库调度管理模块:在该模块中定义了包括对审核入库单,审核内部调入单,审核出库单,审核内部调出单等操作。⑷动态库存管理模块:在该模块中定义了包括对动态库查询,出入库明细查询,库存盘点等操作。⑸报警管理模块:在该模块中定义了包括对查询各种报警信息等操作。系统管理员的功能图如图3-2所示图3-2系统管理员功能图仓库管理员功能模块图说明:。⑴产品管理模块:在该模块中定义了对产品的添加,修改,删除,查询等操作。⑵入库管理模块:在该模块中定义了对包括入库登记和入库查询等操作。⑶出库管理模块:在该模块中定义了对包括出库登记和出库查询等操作。⑷出入库调度管理模块:在该模块中定义了对包括内部调入申请登记,内部调入查询,内部调出申请登记,内部调出查询等操作。⑸动态库存管理模块:在该模块中定义了对包括动态库查询,出入库明细查询,库存盘点等操作。⑹报警管理模块:在该模块中定义了对包括查询各种报警信息等操作。仓库管理员的功能图如图3-3所示图3-3仓库管理员的功能图
第4章系统详细设计与实现系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计(如图4-1)图4-1B/S结构对于一个信息管理系统来说,数据库在其中占有非常重要的位置,也即是说,数据库是其基础与核心的部分。只有在正确完善的数据库系统的支持下,才能有效地进行信息的存储、检索、更新等操作。数据库各个模型之间设计的好坏与合作连接的紧密程度将直接影响到整个应用系统的质量和效率。好的数据库设计更有利于提高数据的查询、检索效率,对于保证数据的完整性与一致性同样具有重要的意义。概念模型设计是指以数据分析为前提和基础,采用自底向上的方法建立整个系统的数据库概念结构,对于视图的设计,概念模型是从用户的角度出发的,然后将视图进行有效的集成,最后对集成的结构进行分析,优化得到最后结果。概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。实体是用户工作环境中概念模型设计是指以数据分析为前提和基础,采用自底向上的方法建立整个系统的数据库概念结构,对于视图的设计,概念模型是从用户的角度出发的,然后将视图进行有效的集成,最后对集成的结构进行分析,优化得到最后结果。概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。图4-2系统E-R图E-R图直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。数据库逻辑模型相对来说,我们都应该知道,数据库概念模型是不随数据库系统的改变而改变,实体-联系模型向关系模型转换应遵循下列原则:⑴每一个实体要转换成一个关系⑵所有的主键必须定义为非空(NOTNULL)值⑶对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,企业库存设计管理系统建立了以下逻辑数据结构模型:报警表信息(主键、报警内容)产品表信息(主键、报警上限、报警下限、添加时间、供应商、库存数量、商品名、是否删除标志、生产地址、关联的用户ID)出单表信息(主键、出库单编号、是否删除标志、出库数量、添加时间、审核反馈、审核状态、关联的库存ID、关联的库房ID、关联的理由ID、关联的商品ID、关联的用户ID)调出表信息(主键、添加时间、是否删除标志、调出数量、调出单编号、审核反馈、审核状态、调出库房ID、调入库房ID、关联的商品ID、关联的入库理由ID、关联的用户ID)调入表信息(主键、添加时间、是否删除标志、调度数量、调度单编号、审核反馈、审核状态、调出库房的id、调入库房的id、关联的商品Id、关联的入库理由id、关联的用户id)库存表信息(主键、数量、关联的库房ID、关联的商品ID、关联的用户ID)库房表信息(主键、最大报警数量、最小报警数量、备注、添加时间、库房编号、是否删除标志、面积、库房名、入库数量、最大数量)理由表信息(主键、添加时间、类型、理由、是否删除标志)明细表信息(主键、产品、内容、添加时间、类型、理由、数量、关联的用户ID)入库表信息(主键、添加时间、编号、是否删除标志、入库数量、审核反馈、审核状态、关联的库存ID、关联的库房ID、关联的理由ID、关联的商品ID、关联的用户ID用户表信息(主键、添加时间、密码、用户权限、真实姓名、是否删除标志、用户名)本系统采用的是MySQL数据库,设计了一个库文件,根据平台的需求分析和功能模块的划分,所涉及的实体包含报警,产品,出库单,库存,库房,理由,明细,入库,调出,调入,用户共计11张表。其中含有:报警表t_baojing,产品表t_product,出库单表t_chuku,库存表t_kucun,库房表t_kufang,理由表t_rukuliyou,明细表t_mingxi,入库表t_ruku,调出表t_diaochu,调入表t_diaodu,用户表t_user。下面是各数据表的详细说明。⑴报警信息表主要是记录了报警查询的基本信息。表结构如表4-1所示。表4-1报警表名称类型空说明IdBigint(20)No主键contentVarchar(255)yes报警内容⑵产品信息表主要是记录了产品名称、产品供应商、生产地址等基本信息。表结构如表4-2所示。表4-2产品表名称类型空说明IdBigint(20)no主键BaojingshangxianInt(11)no报警上限BaojingxiaxianInt(11)no报警下限Createtimedatetimeyes添加时间GongyingshangVarchar(255)yes供应商KucunshuliangInt(11)yes库存数量NameVarchar(255)yes商品名ProductlockInt(11)no是否删除标志ShengchandizhiVarchar(255)yes生产地址useridBigint(20)yes关联的用户ID,外键⑶出单信息表主要是记录了产品出库数量、出库单据编号等基本信息。表结构如表4-3所示。表4-3出单表名称类型空说明IdBigint(20)no主键BianbaoVarchar(255)yes出库单编号ChukulockInt(11)no是否删除标志,0表示未删除,1表示删除ChukushuliangInt(11)no出库数量续表4-3名称类型空说明Createtimedatetimeyes添加时间ShenhefanhuiVarchar(255)yes审核反馈shenhezhuangtaiVarchar(255)yes审核状态KucunidBigint(20)yes关联的库存ID,外键KufangidBigint(20)yes关联的库房ID,外键LiyouidBigint(20)yes关联的理由ID,外键ProductidBigint(20)yes关联的商品ID,外键useridBigint(20)yes关联的用户ID,外键⑷调出信息表主要是记录了产品的调出数量、调出单据编号等基本信息。表结构如表4-4所示。表4-4调出表名称类型空说明IdBigint(20)no主键Createtimedatetimeyes添加时间diaochulockInt(11)no是否删除的标志DiaodushuliangInt(11)no调出数量rukudanbianhaoVarchar(255)yes调出单编号ShenhefanhuiVarchar(255)yes审核反馈shenhezhuangtaiVarchar(255)yes审核状态Kufang1idBigint(20)yes调出库房ID,外键Kufang2idBigint(20)yes调入库房ID,外键productidBigint(20)yes关联的商品ID,外键rukuliyouidBigint(20)yes关联的入库理由ID,外键useridBigint(20)yes关联的用户ID⑸调入信息表主要是记录了产品调入数量、单据编号等基本信息。表结构如表4-5所示。表4-5调入表名称类型空说明IdBigint(20)no主键Createtimedatetimeyes添加时间diaodulockInt(11)no是否删除的标志DiaodushuliangInt(11)no调出数量rukudanbianhaoVarchar(255)yes调出单编号ShenhefanhuiVarchar(255)yes审核反馈shenhezhuangtaiVarchar(255)yes审核状态Kufang1idBigint(20)yes调出库房ID,外键Kufang2idBigint(20)yes调入库房ID,外键productidBigint(20)yes关联的商品ID,外键rukuliyouidBigint(20)yes关联的入库理由ID,外键useridBigint(20)yes关联的用户ID⑹库存信息表主要是记录了产品库存数量、所处库房编号等基本信息。表结构如表4-6所示。表4-6库存表名称类型空说明IdBigint(20)no主键shuliangInt(11)no数量KufangidBigint(20)yes关联的库房ID,外键ProductidBigint(20)yes关联的商品ID,外键useridBigint(20)yes关联的用户ID,外键⑺库房信息表主要是记录了储存产品的库房的基本信息。表结构如表4-7所示。表4-7库房表名称类型空说明IdBigint(20)no主键BaojingzuidashuliangInt(11)no最大报警数量BaojingzuixiaoshuliangInt(11)no最小报警数量BeizhuVarchar(255)yes备注Createtimedatetimeyes添加时间KufangbianhaoVarchar(255)yes库房编号KufanglockInt(11)no是否删除标志MianjiVarchar(255)yes面积NameVarchar(255)yes库房名RushushuliangInt(11)no入库数量zuidashuliangInt(11)no最大数量⑻理由信息表主要是记录了产品进出库理由的基本信息。表结构如表4-8所示。表4-8理由表名称类型空说明IdBigint(20)no主键Createtimedatetimeyes添加时间InfotypeVarchar(255)yes类型LiyouVarchar(255)yes理由rukuliyoulockInt(11)no是否删除标志⑼明细信息表主要是记录了产品出入库时间及库房的基本信息。表结构如表4-9所示。表4-9明细表名称类型空说明IdBigint(20)no主键ChanpinVarchar(255)yes产品ContentVarchar(255)yes内容Createtimedatetimeyes添加时间名称类型空备注LeixingVarchar(255)yes类型LiyouVarchar(255)yes理由ShuliangInt(11)no数量useridBigint(20)yes关联的用户ID,外键⑽入库信息表主要是记录了入库数量及时间的基本信息。表结构如表4-10所示。表4-10入库表名称类型空说明IdBigint(20)no主键Createtimedatetimeyes添加时间RukudanbianhaoVarchar(255)yes编号rukulockInt(11)no是否删除标志rukushuliangInt(11)no入库数量ShenhefanhuiVarchar(255)yes审核反馈shenhezhuangtaiVarchar(255)yes审核状态KucunidBigint(20)yes关联的库存ID,外键KufangidBigint(20)yes关联的库房ID,外键LiyouidBigint(20)yes关联的理由ID,外键ProductidBigint(20)yes关联的商品ID,外键useridBigint(20)yes关联的用户ID,外键⑾用户信息表主要是记录了用户的基本信息。表结构如表4-11所示。表4-11用户表名称类型空说明IdBigint(20)no主键Createtimedatetimeyes添加时间passwordVarchar(255)yes密码roleInt(11)no用户权限TruenameVarchar(255)yes真实姓名UserlockInt(11)no是否删除标志usernameVarchar(255)yes用户名
第5章系统功能实现在一个管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便进入了系统实施阶段。5.1登陆页面登陆代码如图5-1:图5-1登陆页面//用户登录操作 publicStringlogin()throwsIOException{ ServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Useruser=userDao.selectBean("whereusername='"+username +"'andpassword='"+password+"'anduserlock=0"); if(user!=null){ Sessionsession=request.getSession(); session.setAttribute("user",user); List<Baojing>baojings=baojingDao.selectBeanList(0,9999,"where1=1"); for(Baojingbaojing:baojings){ baojingDao.deleteBean(baojing); } Strings=""; if(user.getRole()==0){ s="anduser.id="+user.getId(); } List<Kufang>kufangs=kufangDao.selectBeanList(0,9999,"wherekufanglock=0"); for(Kufangkufang:kufangs){ if(kufang.getRushushuliang()<kufang.getBaojingzuixiaoshuliang()){ Baojingbaojing=newBaojing(); baojing.setContent(kufang.getName()+"的入库数量小于该库房的最小入库数量。报警!!"); baojingDao.insertBean(baojing); } if(kufang.getRushushuliang()>kufang.getBaojingzuidashuliang()){ Baojingbaojing=newBaojing(); baojing.setContent(kufang.getName()+"的入库数量大于该库房的最大入库数量。报警!!"); baojingDao.insertBean(baojing); } } List<Product>products=productDao.selectBeanList(0,9999,"whereproductlock=0"+s); for(Productproduct:products){gxiaxian()){ Baojingbaojing=newBaojing(); baojing.setContent(product.getUser().getUsername()+"添加的"+product.getName()+"的库存数量小于该商品的最小库存数量。报警!!"); baojingDao.insertBean(baojing); }ngxian()){ Baojingbaojing=newBaojing(); baojing.setContent(product.getUser().getUsername()+"添加的"+product.getName()+"的库存数量大于该商品的最大库存数量。报警!!"); baojingDao.insertBean(baojing); } }lectBeanList(0,9999,"where1=1")); this.setUrl("main.jsp"); return"redirect"; }else{ ServletResponseresponse=ServletActionContext.getResponse(); response.setCharacterEncoding("gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('用户名或者密码错误');window.location.href='index.jsp';</script>"); } returnnull; }本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码还,然后调用方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。当用户登录成功时,则通过baojingDao调用各种满足信息的报警信息。5.2仓库管理员主页面代码://仓库管理员列表如图5-2 图5-2管理员主页面publicStringuserlist(){ ServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); Stringtruename=request.getParameter("truename"); StringBuffersb=newStringBuffer(); sb.append("where"); if(username!=null&&!"".equals(username)){ sb.append("usernamelike'%"+username+"%'"); sb.append("and"); request.setAttribute("username",username); } if(truename!=null&&!"".equals(truename)){ sb.append("truenamelike'%"+truename+"%'"); sb.append("and"); request.setAttribute("truename",truename); } sb.append("userlock=0androle=0orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=userDao.selectBeanCount("whereuserlock=0"); request.setAttribute("list",userDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"method!userlist","共有"+total+"条记录")); request.setAttribute("url","method!userlist"); request.setAttribute("url2","method!user"); this.setUrl("user/userlist.jsp"); returnSUCCESS; }首先通过r("username"); Stringtruename=request.getParameter("truename");这句代码从页面获取查询的选项,,然后通过if(username!=null&&!"".equals(username)){,if(truename!=null&&!"".equals(truename)){通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过userDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("user/userlist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该仓库管理员列表页面定义了对仓库管理员信息的增加,修改,删除等操作。5.3动态库查询主页面代码://动态库查询(管理员权限)如图5-3 图5-3管理员权限publicStringkucunlist7(){ ServletRequestrequest=ServletActionContext.getRequest(); Stringkufang=request.getParameter("kufang"); Stringproduct=request.getParameter("product"); StringBuffersb=newStringBuffer(); sb.append("where"); if(kufang!=null&&!"".equals(kufang)){ sb.append("like'%"+kufang+"%'"); sb.append("and"); request.setAttribute("kufang",kufang); } if(product!=null&&!"".equals(product)){ sb.append("like'%"+product+"%'"); sb.append("and"); request.setAttribute("product",product); } sb.append("1=1orderbykufang.iddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=kucunDao.selectBeanCount("where1=1"); request.setAttribute("list",kucunDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"method!kucunlist7","共有"+total+"条记录")); request.setAttribute("url","method!kucunlist7"); request.setAttribute("url2","method!kucun"); this.setUrl("kucun/kucunlist7.jsp"); returnSUCCESS; }首先通过Stringkufang=request.getParameter("kufang"); Stringproduct=request.getParameter("product");这句代码从页面获取查询的选项,,然后通过if(kufang!=null&&!"".equals(kufang)){,if(product!=null&&!"".equals(product)){通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过kucunDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("kucun/kucunlist7.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现等操作。5.4入库单管理主页面代码://入库单列表如图5-4publicStringrukulist(){ ServletRequestrequest=ServletActionContext.getRequest(); Stringkufang=request.getParameter("kufang"); Stringproduct=request.getParameter("product"); Stringshenhezhuangtai=request.getParameter("shenhezhuangtai"); StringBuffersb=newStringBuffer();sb.append("where"); if(kufang!=null&&!"".equals(kufang)){ sb.append("like'%"+kufang+"%'"); sb.append("and"); request.setAttribute("kufang",kufang); } 图5-4入库单页面 if(product!=null&&!"".equals(product)){ sb.append("like'%"+product+"%'"); sb.append("and"); request.setAttribute("product",product); } if(shenhezhuangtai!=null&&!"".equals(shenhezhuangtai)){ sb.append("shenhezhuangtailike'%"+shenhezhuangtai+"%'"); sb.append("and"); request.setAttribute("shenhezhuangtai",shenhezhuangtai); } Sessionsession=request.getSession(); Useruser=(User)session.getAttribute("user"); sb.append("rukulock=0anduser.id="+user.getId()+"orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=rukuDao.selectBeanCount("whererukulock=0"); request.setAttribute("list",rukuDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"method!rukulist","共有"+total+"条记录")); request.setAttribute("url","method!rukulist"); request.setAttribute("url2","method!ruku"); this.setUrl("ruku/rukulist.jsp"); returnSUCCESS; }首先通过Stringkufang=request.getParameter("kufang");Stringproduct=request.getParameter("product");Stringshenhezhuangtai=request.getParameter("shenhezhuangtai");这句代码从页面获取查询的选项,,然后通过if(kufang!=null&&!"".equals(kufang)){,if(product!=null&&!"".equals(product)){if(shenhezhuangtai!=null&&!"".equals(shenhezhuangtai)){通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过rukuDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过 this.setUrl("ruku/rukulist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该入库单列表页面定义了对入库单信息的增加,修改,删除等操作。
第6章系统的调试与测试所要进行的测试主要包括以下几个方面:系统能否正常运行;系统页面之间的连接是否能够跳转;管理员、普通成员是否能够正常登录;系统管理员是否能实现库存基础信息管理、仓库管理员管理、出入库调度管理、动态库存管理、报警管理功能。仓库管理员是否能实现产品管理、入库管理、出库管理、出入库调度管理、动态库存管理、报警管理功能。6.2软件测试的任务在谈到软件测试时,仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的,事实并非如此。测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法。6.3测试环境Apache提供的Web服务器Tomcat6.0使得用户可以在Windows2000以上操作系统下发布自己设计的动态网页。因此对论坛的调试工作主要是利用Tomcat6.0的强大功能在本机下完成的。为了在本机下浏览Web页面,首先在创建该系统的站点上(该系统使用的是Web图6-1对话框的默认站点)将IP地址设定为,它的缺省域名值为localhost。然后向IE浏览器输入本地动态网页的URL,Web服务器在收到浏览器传送的URL之后找到网页文件,并在服务器端执行该文件后将此文件以HTML文件的形式返回该浏览器。软件测试本系统设计中出现以下问题:⑴出现的问题:mysql中文乱码问题?在hibernate.cfg.xml配置文件中修改如下
环境:Hibernate3.2+MySQL5.0(MySQL的编码已设置为utf8)
问题:通过Hibernate向MySQL写入中文后,通过Hibernate取回数据,在console中打印java对象显示正常。但在MySQLQueryBrowser中看到的是乱码,传给前端的Flex也是乱码。原因:Hibernate的基础还是JDBC,所以一样需要设置characterEncoding!解决方法:<property
name="connection.url">jdbc:mysql://localhost:3306/tst?>如果用perties
#hibernate.connection.urljdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8⑵host:3306/myeshop?useUnicode=true&characterEncoding=UTF-8"></property>⑶在Web.xml中配置encodingFilter过滤器,在web.xml中加入下面代码
<filter>
<filter-name>encodingFilter</filter-name><filter-class></filter-class><init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value></init-param></filter><filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>⑷mysql库表要都以UTF-8编码建表。⑸jsp页面编码形式:<%@pagelanguage="java"import="java.util.*"
pageEncoding=“UTF-8”%>出现的问题:将项目发布到MyEclipse自带的Tomcat后,运行Tmocat服务器,运行成功后。在IE浏览器中输入URL,进到登陆页面,输入用户名和用户密码,无法连接。控制台出现“数据库驱动无法加载”提示信息?出现问题的原因,是因为MyEclipse自带的JDK版本低,与其自带的Tomcat版本不兼容。又或者没有在项目当中加入MySql数据库驱动包。解决方案:在电脑上安装jdk6.0,然后配置环境变量在电脑上安装Tomcat6.0,然后再MyEclipse中添加Tomcat服务器。在MyEclipse中配置JDK。从Preferences左侧菜单下找到Java,打开该项中的InstalledJREs,点击Add进行添加。在MyEclipse中配置Tomcat。从Preferences左侧菜单下找到MyEclipseEnterpriseWorkbench,打开其中的Servers项,找到Tomcat,选择自己安装的版本,此处我选择Tomcat6.x,将其设为Enable,在Browse..目录下选择Tomcat的安装目录。重新启动Tomcat服务器,在IE中输入URL,程序运行成功。
结论经过了两个多月的学习和工作,我终于完成了企业库存管理信息系统的设计。由于时间仓促,对我这样一个JSP新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单,所用到的JSP语言的知识也不够全面,并且很多地方没有完全的理解和掌握。通过这次设计我提升了许多。首先,由于毕业设计所用的JSP技术和其中用到JSP语言的其他部分是在课堂上没有接触过的,在对JSP等相关技术不了解的状态,我阅了相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩的作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我异常兴奋。在这个过程中,不仅大大提高了我的自学能力而且让我对JSP的学习有了进一步的认识。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。下面对该系统的特点以及不足之处进行总结和归纳来加以完善
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西式烹调师-理论考试试题及答案
- 项目风险监控预警台账
- 中考数学 规律探究题 专项练习
- (辅导班)2026年新高三数学暑假讲义(基础班)第03讲 指数与指数函数(原卷版)
- 【2026年】高级卫生专业技术资格考试心血管内科(001)(正高级)应考难点精析
- 26年银发主动脉夹层应急处理课件
- 26年机构养老群体生理特点
- 医学26年:创新性管理要点解读 查房课件
- 第三章 文献检索与综述
- 26年基础护理服务独居老人保障工程课件
- TCECS 1417-2023 预埋件现场检测技术规程
- 事业单位护理学知识题库及答案解析
- 《中西医协同老年健康状态评估指导》
- 光气管道施工方案设计
- DB41-T 2500-2023 地下水监测井洗井、修井技术规范
- 上海铁路局招聘笔试考什么内容
- 北师大版七年级数学下册-第一章-名校检测题【含答案】
- 浙二医院胸外科护士进修汇报
- DGTJ08-2323-2020 退出民防序列工程处置技术标准
- 党支部书记讲廉洁党课讲稿
- 广东省佛山市华英学校2024-2025学年上学期七年级入学分班考试英语试卷
评论
0/150
提交评论