jsp自行车租赁sqlserver论文_第1页
jsp自行车租赁sqlserver论文_第2页
jsp自行车租赁sqlserver论文_第3页
jsp自行车租赁sqlserver论文_第4页
jsp自行车租赁sqlserver论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE论文论文作者姓名:申请学位专业:申请学位类别:论文提交日期:摘要随着Internet的迅速崛起,信息网络化成为时代的主题。许多行业在经营管理过程中对计算机技术的依赖程度不断增强。对于自行车行业来说,由于自行车的普及以及自行车工业的发展,自行车租赁成为近年兴起的一新兴行业,其传统的手工管理方式不但浪费人力、时间,而且管理复杂多样、易出差错,为了减轻工作人员的工作负担,我们利用计算机来完成这一工作,使管理工作变得更加准确、高效、清晰,自行车租赁管理系统有效的解决了纸质手工处理业务时效率低下和数据信息易丢失的问题,使用户查询车辆信息更快捷,更便于管理员对车辆和用户的管理,这样大大提高了工作效率。本设计的开发是基于B/S结构,采用JSP程序设计语言及SQL2005数据库进行开发自行车租赁行业管理信息系统;论文首先阐述了自行车租赁行业管理信息系统的开发,并对该系统进行了较详细的需求分析;然后探讨了该系统需要实现的设计方案,该系统主要包括前台:用户管理,角色管理,权限管理,分店管理,自行车资源类型管理,自行车查询,租赁,结算等功能,最后在测试与分析过程中,该系统表现出了运行稳定、可靠和实用等特性,具有一定的实用价值。关键词:管理系统;JSP;数据库AbstractWiththerapidriseoftheInternet,informationnetworkhasbecomethemainthemeofthetimes.Manyindustriesintheprocessofmanagementandoperationdependsoncomputertechnologyunceasingenhancement.Fortheautomotiveindustry,becauseofthepopularizationofcarsandthedevelopmentofautomobileindustry,carrentalhasbecomeanewindustryinrecentyears,thetraditionalmanualmanagementisnotonlyawasteofmanpower,time,andmanagecomplex,errorprone,inordertoreducetheworkloadofthestaff,weusecomputertocompletethiswork,makemanagementhasbecomemoreaccurate,efficient,clear,carrentalmanagementsystemisaneffectivesolutiontothepapermanualprocessingbusinessefficiencyanddatainformationiseasilylostproblems,allowinguserstoquerythevehicleinformationmorequickly,moreconvenientfortheadministratorofthevehicleandusermanagement,whichgreatlyimprovestheworkefficiency.DevelopmentofthisdesignisbasedonB/Sstructure,usingJSPprogramminglanguageandSQL2005databasemanagementinformationsystemdevelopmentofcarrentalindustry;thispaperdescribesthedevelopmentofmanagementinformationsystemofthecarrentalindustry,andthesystemisanalyzedindetail;thendiscussesdesignschemeofthesystemneedtobeimplemented,thesystemincludingfrontdesk:usermanagement,rolemanagement,rightsmanagement,branchmanagement,automotiveresourcestypemanagement,carrental,query,andotherfunctions,finally,throughtestingandanalyzing,itshowsthissystemisstable,reliableandpracticalcharacteristics,andhasacertainpracticalvalue.Keywords:website;JSP;database目录自行车租赁行业管理信息系统设计与开发 01引言 11.1课题背景 11.2本课题研究的意义 11.3国内外研究情况 12开发环境与相关技术 32.1JSP技术 32.1.1JAVA简介 32.1.2JSP简介 32.2Myeclipse介绍 42.3SQL2005数据库 42.4Browser/Server(B/S)结构 43系统需求分析及设计 63.1需求分析 63.2系统设计 63.2.1系统功能 63.2.2系统结构 63.3数据库设计 73.3.1数据库需求分析 73.3.2数据库的逻辑结构分析 73.3.3数据库物理表结构设计 84系统实现 104.1登入界面 104.2系统用户管理界面 114.3分店管理界面 134.4自行车类型管理界面 164.5自行车管理界面 194.6自行车添加界面 224.7客户管理界面 224.8租赁管理界面 235系统测试 255.1添加测试 255.2登入测试 255.3界面测试 255.4测试分析 25结论 27参考文献 28致谢 29第25页共44页1引言1.1课题背景随着生活水平的不断提高,人们对自行车的需求越来越大,也有能力来租车消费。但中国现有自行车保有量难以充分满足需求,其次,购买私车还不能普及,从个人来说,租车是最好的,买车一次性投入大,购车的手续多,养车费用高,而私车的利用率一般不高,闲置时间较长;出现交通事故后,处理手续太烦琐。而租车则有很大的灵活性,既不会占用大量资金,也不会出现闲置,车况有保证,出差到外地也可以驾驶车辆。而且租赁车车型可选择,客户既能承受,又能满足多样化的需求。而且,从社会角度看,租赁车辆属于公共用车的范畴,它既缓解了现阶段财政控购与企业单位用车之间的矛盾,提高了资金利用率,同时也符合社会车辆总量控制原则,可在一定程度上缓解交通拥挤;从发展角度看,自行车租赁业的发展不仅可以带动中国的新车销售,同时还可以推动中国二手车的经营,为旧车交易注入新的内容;自行车租赁的特殊作用,可以带动多种相关行业的发展,融合产业间的联系,成为第二产业与第三产业间的联系纽带。得益于以上三个方面的原因,自行车租赁业在我国迅速崛起,业务量也是越来越多,对信息的处理要求也是越来高,传统的自行车管理人员已不满足自行车租赁业务的需求发展。租赁管理就是对车辆信息和客户信息的管理,主要包括车辆的出租状态、车辆的基本信息、定单的管理等。由于这些过程间的关系复杂,有一对一的关系,一对多的关系,也有多对多的关系,所有这些工作使管理工作变得量大而又复杂,以前包括现在还有很多租赁公司采用人工管理,直接导致了错误的产生,服务质量的低下。租赁管理系统的开发使得这一状况得到了根本的改善。1.2本课题研究的意义我们利用计算的庞大的存储空间,高性能的处理效率,高度可靠的数据安全,清晰的可视化数据等,直到达到减少劳动力提高劳动质量的目的。通过具有网络功能的自行车租赁管理系统,客户可以通过网络查阅相关的自行车租赁情况,企业的管理人员可以根据客户的实情况进行管理,具有很强的实用性,节省了人力物力,还提高了服务质量和经济效益。

。1.3国内外研究情况据了解,国外自行车租赁行业经过近百年的发展史,如今已较为成熟和完善,其最大特点便是成为了一个“寡头”行业,规模化的经营也帮助它们降低了运营管理成本,价格、服务更具优势。且跨行业的合作更为广泛,如自行车租赁业与金融、保险、航空运输、旅游、酒店服务、自行车制造等多行业的合作更为紧密,通过对客户需求的全方位服务,实现自行车租赁持续的发展动力。回到国内,虽然中国自行车租赁行业发展时间还很短,但近几年的发展迅猛,在特点上也呈现向国际接轨的态势,如以一嗨租车为首的全国连锁品牌的出现,就改变了过去小微租车企业占据市场的现状,纯电子商务化的管理模式,也使得这个行业的规模化发展成为可能,为它将来的“寡头化”奠定了基础;同时,随着国人消费观念的转变,经济、便捷的租车出行方式将越来越盛行,如同发达国家那样成为企业、个人的\o""用车首选方式之一,租车企业与\o"汽车"自行车生产商以及上下游相关产业的结合也将更加紧密,创造大量就业机会,拉动消费,实现产业链的良性循环。2开发环境与相关技术本系统是采用JSP编程技术和SQL2005数据库,在WindowsXP操作系统环境下,采用Myeclipse开发工具以及SSH2框架进行设计与开发完成的基于B/S结构的学生意见管理系统。2.1JSP技术2.1.1JAVA简介.Java语言诞生于20世纪90年代的初期,最初是以智能家电的芯片语言出现的。但是很快,人们发现了它有更广阔的用武之地,由于它适用于Internet环境,引起计算机界的广泛关注,迅速发展成计算机网络编程语言。Java语言备受推崇,因其确实可称得上是新一代编程语言,具有众多优点,它简单、面向对象、可移植、与硬件无关、系统强健安全、具有很高的性能,并提供了分布性、多线程、动态性的支持。2.1.2JSP简介JSP(JavaServerPages)是由Sun公司在java语言上开发出来的一种动态网页制作技术,JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果,使您可以将网页中的动态部分和静态的HTML相分离。⑴将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。⑵强调可重用的组件绝大多数JSP页面信赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,井使得这些组件为更多的使用者或者客户团体所使用[6]。⑶采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在生成与JSP相关的XML标识的动态内容时所需要的。标准的JSP标识能够访问和实例化JavaBeans组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码和耗时的功能。⑷健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,且都被编译为JavaServlet,它就具有Java技术的所有好处,包括健壮的存储管理和安全性[7]。⑸良好的移植性作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,可以使用自己所选择的服务器和工具,而且更改工具或服务器并不影响当前的使用。⑹企业级的扩展性和性能当与Java2平台,企业版(J2EE)和EnterpriseJavaBeans技术整合时,JSP页面将提供企业级的扩展性和性能,这对于虚拟企业中部署基于Web的应用是必需的。2.2Myeclipse介绍MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2.3mysql数据库利用JSP结合数据库来开发网站使得网站更具有交互性,因为没有数据库支持的静态网页已经无法满足人们对于网络的需求了。数据库在各行各业中是必不可少的,下面就来介绍数据库方面的相关知识。SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。它的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。MicrosoftSQLServer(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统。用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。此数据库管理系统能够存储大容量的数据,能够保证数据的安全性、维护数据的完整性,还具有自动高效的机制以及运行分布式处理等。2.4Browser/Server(B/S)结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。3系统需求分析及设计3.1需求分析一个典型的自行车租赁网站主要功能有:(1)用户管理功能。管理员可以对系统的用户进行增删改查。(2)分店管理的功能。管理员可以对系统的分店进行增删改查(3)自行车类别管理功能。管理员可以对系统的自行车类别进行增删改查。(4)车辆管理功能。分店店长可以对车辆进行增删改查。(5)客户管理。店员可以对系统的客户进行增删改查。(6)车辆查询。可以对系统所具有的车辆进行查询(7)租赁功能。可以为客户进行自行车租赁。(7)归还功能。可以为客户进行自行车归还,结算。3.2系统设计根据前面章节需求分析的情况,结合本系统所要实现的功能,具体设计方案如下。3.2.1系统功能通过对需求的分析,一个自行车租赁网站应包括以下的主要角色:系统管理员,分店店长,店员。每个功能都具有自己相应的权限。完成不同的操作3.2.2系统结构图3-1系统功能模块图3.3数据库设计3.3.1数据库需求分析(1)游戏数据的准备。首先要搜集上传的自行车数据。这些自行车数据可以分为三类:纸面记录、电子数据(XML、Access、Excel等文件)、网上数据。无论对于哪一种数据,都要对其进行检查,修正有问题的数据,删除重复和过期的记录。在检查的同时,还要对这些数据进行分析,为制定自行车目录方案做准备。(2)自行车数据方案的制定。自行车数据方案制定的目的在于:①对自行车进行科学、灵活地分类,方便客户迅速从少则几万,多则几十万甚至上百万种自行车中找出所需自行车。②使系统支持强大、方便、快捷的查询功能,实现模糊查询和智能查询。③高效的自行车数据方案能提高数据库性能,提高网页浏览速度。(3)用户信息表的制定。用户信息表内保存着自行车网站中用户个人所拥有的个人信息和资料,是自行车网站的后台管理人员进行自行车数据的设计规划和进行决策的依据和参考。用户ID则是用户个人身份证明的依据。3.3.2数据库的逻辑结构分析对于系统用户信息数据库,有以下数据项和数据结构:用户信息:用户ID(自动编号)、用户姓名、电话号码、登入名,登入密码,用户角色。自行车类型信息:ID(自动编号),类型名称。分店信息:ID(自动编号),分店名称,分店地址,分店电话。会员信息:ID(自动编号),会员编号,金额,电话,真实姓名。自行车信息:ID(自动编号),所属类型,车牌号,租赁价格,状态,描述。租赁信息:ID(自动编号),自行车id,会员id,租赁开始时间,租赁结束时间,状态,总金额。3.3.3数据库物理表结构设计本系统需要建立6个数据表(1)admins表:记录系统用户基本信息,如表1所示。表1系统用户表(admins)序号列名数据类型长度是否必填1idIntNotnull2Usernamevarchar50Null3passwordvarchar50Null4FidIntNull5Typevarchar50Null6Telvarchar50Null7Realnamevarchar50Null(2)car表:记录自行车信息,如表2所示。表2自行车表(car)序号列名数据类型长度是否必填1IdIntNotnull2Nonvarchar50Null3Descsnvarchar50Null4Moneynvarchar50Null5Statesnvarchar50Null6TidIntNull(3)fd表:记录分店信息,如表3所示。表3分店表(fd)序号列名数据类型长度是否必填1IdIntNotnull2Namesvarchar50Null3Telvarchar50Null4Addressvarchar50Null(4)types表:记录自行车类别信息,如表4所示。表4自行车类别表(types)序号列名数据类型长度是否必填1IdIntNotnull2Namesvarchar50Null(5)members表:记录客户信息,如表5所示。表5客户表(members)序号列名数据类型长度是否必填1IdIntNotnull2Novarchar50Null3Moneysvarchar50Null4Realnamevarchar505Telvarchar50(6)zl表:记录租赁信息,如表1所示。表1租赁信息表(zl)序号列名数据类型长度是否必填1idIntNotnull2MidInt50Null3cidInt50Null4Statesvarchar50Null5BtimesDatetimeNull6EtimesDatetimeNull7Totlemoneysvarchar50Null4系统实现4.1登入界面系统的第一个页面就是登入界面,作为一个系统,您必须具有一定的权限才可以访问,所以我们想要进入这个自行车租赁系统,就必须从登入界面进入,登入见面比较简单,主要有一个背景图片,加上两个输入框,一个登入按钮组成,等用户输入用户名和密码,点击登入按钮的时候,程序会调用相应的登入代码,进行用户的登入操作。如果用户存在,则跳转到系统首界面,如果不存在,则提示用户不存在。图4-1登入界面主要代码如下:Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); HttpSessionsession=request.getSession(); Stringsql="select*fromuserswhereusername='"+username +"'andpassword='"+password+"'"; System.out.println(sql); DBUtilutil=newDBUtil(); Connectionconn=util.openConnection(); try{ PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); intindex=0; while(rs.next()){ session.setAttribute("id",rs.getInt("id")); session.setAttribute("username",rs.getString("username")); session.setAttribute("type","用户"); index++; break; } if(index>0){ response.sendRedirect("index2.jsp"); }else{ response.sendRedirect("login2.jsp"); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); }4.2系统用户管理界面点击左边功能树的用户管理界面,就能进入对系统用户管理的界面,这主要是对系统用户的增删改查工作,这是一个系统运行的基本,因为只有有了用户,才可以让用户登入进行一些系统操作。主要是系统的用户的用户名,密码,姓名,电话,权限等。输入相应信息,验证数据完整性和数据库中是否存在,如果一切数据正常,那添加成功,如果不正常则提示用户相应的信息。点击删除按钮会删除一个用户。图4-2系统用户管理主要代码如下:try{ if(mode!=null&&mode.equals("list")){ this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("khlist")){ this.listkh(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("add")){ Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringrealname=request.getParameter("realname"); Stringtype=request.getParameter("type"); Stringtel=request.getParameter("tel"); Stringfid=request.getParameter("fid"); StringsqlAdd="insertintoadmins(username,password,type,realname,tel,fid)values('" +username+"','"+password+"','"+type+"','"+realname+"','"+tel+"',"+fid+")"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("addkh")){ Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); StringsqlAdd="insertintousers(username,password)values('" +username+"','"+password+"')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.listkh(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("modifypwd")){ HttpSessionsession=request.getSession(); Stringid=session.getAttribute("id").toString(); Stringpassword=request.getParameter("password"); Stringsqlmodify="updateuserssetpassword='"+password +"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); request.getRequestDispatcher("admin/userpwdupdate.jsp") .forward(request,response); } if(mode!=null&&mode.equals("deletes")){ Stringid=request.getParameter("id"); Stringsqldelete="deletefromadminswhereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqldelete); this.list(n,m,conn,request,response,pageNo); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } }4.3分店管理界面点击左边功能树的分店管理功能,会对系统的所以分店进行管理,我们知道,系统中的分店管理非常重要,这是下面程序进行的基础。填写相应的分店信息,点击保存,对分店进行添加,点击删除可以删除一个分店。图4-3分店管理界面主要代码如下:request.setCharacterEncoding("UTF-8"); Stringmode=request.getParameter("mode"); StringpageNoStr=request.getParameter("pageNoStr")==null?"1" :request.getParameter("pageNoStr"); intm=0; intn=200;//每页大小 intpageNo=Integer.parseInt(pageNoStr); if(pageNo==1){//首页 }else{ m=(pageNo-1)*n; } DBUtilutil=newDBUtil(); Connectionconn=util.openConnection(); try{ if(mode!=null&&mode.equals("list")){ this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("add")){ Stringnames=request.getParameter("names"); Stringaddress=request.getParameter("address"); Stringtel=request.getParameter("tel"); StringsqlAdd="insertintofd(names,address,tel)values('" +names+"','"+address+"','"+tel+"')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("modifyBefore")){ Stringid=request.getParameter("id"); Stringsql="select*fromfdwhereid="+id; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); while(rs.next()){ Fdbean=newFd(); bean.setId(rs.getInt("id")); bean.setTel(rs.getString("tel")); bean.setNames(rs.getString("names")); bean.setAddress(rs.getString("address")); request.setAttribute("bean",bean); break; } request.getRequestDispatcher("fdmodify.jsp") .forward(request,response); } if(mode!=null&&mode.equals("modify")){ Stringid=request.getParameter("id"); Stringaddress=request.getParameter("address"); Stringtel=request.getParameter("tel"); Stringsqlmodify="updatefdsettel='"+tel+"',address='"+address+"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("deletes")){ Stringid=request.getParameter("id"); Stringsqldelete="deletefromfdwhereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqldelete); this.list(n,m,conn,request,response,pageNo); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } } publicvoidlist(intn,intm,Connectionconn,HttpServletRequestrequest, HttpServletResponseresponse,intpageNo){ Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMfd)A" +"WHERERowNumber>"+m; Stringsql2="selectcount(*)fromfd"; PreparedStatementpstmt1; inttotle=0; ResultSetrs=null; try{ pstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); rs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); totle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Fd>list=newArrayList<Fd>(); while(rs.next()){ Fdbean=newFd(); bean.setId(rs.getInt("id")); bean.setTel(rs.getString("tel")); bean.setNames(rs.getString("names")); bean.setAddress(rs.getString("address")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("fdlist.jsp").forward(request, response); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }4.4自行车类型管理界面点击自行车类型管理界面,可以进入自行车类型管理界面,在这个界面,对系统中所以自行车的类型进行维护。图4-4自行车类型管理界面主要代码如下:request.setCharacterEncoding("UTF-8"); Stringmode=request.getParameter("mode"); StringpageNoStr=request.getParameter("pageNoStr")==null?"1" :request.getParameter("pageNoStr"); intm=0; intn=200;//每页大小 intpageNo=Integer.parseInt(pageNoStr); if(pageNo==1){//首页 }else{ m=(pageNo-1)*n; } DBUtilutil=newDBUtil(); Connectionconn=util.openConnection(); try{ if(mode!=null&&mode.equals("list")){ this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("add")){ Stringnames=request.getParameter("names"); StringsqlAdd="insertintotypes(names)values('" +names+"')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("modifyBefore")){ Stringid=request.getParameter("id"); Stringsql="select*fromtypeswhereid="+id; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); while(rs.next()){ Typesbean=newTypes(); bean.setId(rs.getInt("id")); bean.setNames(rs.getString("names")); request.setAttribute("bean",bean); break; } request.getRequestDispatcher("typesmodify.jsp") .forward(request,response); } if(mode!=null&&mode.equals("deletes")){ Stringid=request.getParameter("id"); Stringsqldelete="deletefromtypeswhereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqldelete); this.list(n,m,conn,request,response,pageNo); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } } publicvoidlist(intn,intm,Connectionconn,HttpServletRequestrequest, HttpServletResponseresponse,intpageNo){ Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMtypes)A" +"WHERERowNumber>"+m; Stringsql2="selectcount(*)fromtypes"; PreparedStatementpstmt1; inttotle=0; ResultSetrs=null; try{ pstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); rs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); totle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Types>list=newArrayList<Types>(); while(rs.next()){ Typesbean=newTypes(); bean.setId(rs.getInt("id")); bean.setNames(rs.getString("names")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("typeslist.jsp").forward(request, response); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }4.5自行车管理界面分店店长登入系统后,店家自行车管理界面,可以对系统的自行车进行管理。这是系统的核心部分,因为是自行车租赁系统,所以系统必须有自行车,自行车被添加后默认是可被租用的状态。图4-5自行车管理界面主要代码如下:Stringtid=request.getParameter("tid"); Stringno=request.getParameter("no"); Stringmoneys=request.getParameter("moneys"); Stringdescs=request.getParameter("descs"); StringsqlAdd="insertintocar(tid,no,moneys,states,descs)values(" +tid +",'" +no +"','" +moneys +"','空闲','" +descs +"')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("zl")){ Stringmid=request.getParameter("mid"); Stringcarid=request.getParameter("carid"); StringsqlAdd="insertintozl(mid,cid,btimes,states)values(" +mid+","+carid+",getdate(),'租赁')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); Stringsqlupdate="updatecarsetstates='租赁'whereid=" +carid; Statementstmt2=conn.createStatement(); stmt2.executeUpdate(sqlupdate); this.list3(n,m,conn,request,response,pageNo); } if(mode!=null&&mode.equals("js")){ Stringid=request.getParameter("id"); Stringsql="select*fromzlwhereid="+id; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); intcid=0; Stringmoneys="0"; Datebtimes=newDate(); Dateetimes=newDate(); while(rs.next()){ cid=rs.getInt("cid"); btimes=rs.getDate("btimes"); break; } longDAY=24L*60L*60L*1000L; longdayNumber=(etimes.getTime()-btimes.getTime())/DAY; Stringsql2="select*fromcarwhereid="+cid; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ moneys=rs2.getString("moneys"); break; } Stringtotlemoneys=(Double.parseDouble(moneys)*dayNumber)+""; StringsqlAdd="updatezlsetstates='归还',etimes=getdate(),totlemoneys='"+totlemoneys+"'whereid=" +id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); Stringsqlupdate="updatecarsetstates='空闲'whereid="+cid; Statementstmt2=conn.createStatement(); stmt2.executeUpdate(sqlupdate); this.list4(n,m,conn,request,response,pageNo); }4.6自行车添加界面在自行车添加界面,填写完整自行车的信息,可以添加成功一个自行车,如果输入数据有误,那么添加不成功。图4-6自行车添加界面主要代码如下:Stringtid=request.getParameter("tid"); Stringno=request.getParameter("no"); Stringmoneys=request.getParameter("moneys"); Stringdescs=request.getParameter("descs"); StringsqlAdd="insertintocar(tid,no,moneys,states,descs)values(" +tid +",'" +no +"','" +moneys +"','空闲','" +descs +"')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd);4.7客户管理界面分店店员可以对系统的客户进行管理,包括客户的姓名,身份证号,电话等等。图4-7客户管理界面主要代码如下:Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMmembers)A" +"WHERERowNumber>"+m; Stringsql2="selectcount(*)frommembers"; PreparedStatementpstmt1; inttotle=0; ResultSetrs=null; try{ pstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); rs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); totle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Member>list=newArrayList<Member>(); while(rs.next()){ Memberbean=newMember(); bean.setId(rs.getInt("id")); bean.setNo(rs.getString("no")); bean.setRealname(rs.getString("realname")); bean.setTel(rs.getString("tel")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("memberlist.jsp").forward(request, response);4.8租赁管理界面租赁是本系统的核心部分,下面重点阐述下:分店店员进入自行车租赁界面,查询符合要求的自行车,注意这里只可以查询到可以被租赁的自行车,已经被租赁的自行车不会被查询到,点击后会的租赁就会选择相应的客户进行租赁了,租赁之后会记录租赁的时间,当用户进行归还的时候,会记录归还时间然后进行结算,自行车状态自动改为可被租赁状态。图4-8租赁管理界面主要代码如下:Stringmid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论