java课程设计_第1页
java课程设计_第2页
java课程设计_第3页
java课程设计_第4页
java课程设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、java课程设计软 件 学 院课程设计报告书 课程名称 JavaEE与中间件 设计题目 自行车出租信息管理系统 2015年 1月25 / 2525 / 2525目录1.设计时间42.编译环境选择43.设计目的44.设计任务45设计内容55.1需求分析55.1.1可行性分析55.1.2系统需求分析65.1.3数据建模65.1.4功能建模75.2数据库设计85.2.1表的设计85.2.2表的结构85.3系统设计105.3.1数据增加流程图105.3.2数据删除流程图115.3.3数据修改流程图115.4程序实现125.4.1 环境配置125.4.2各模块程序实现125.5各部分的截图216. 总结

2、与展望23参考文献24成绩评定241. 设计时间2015.1.192015.1.222. 编译环境选择 MyEclipse10,Eclipse及相关插件,Tomcat7.0,选择的后台交互语言为Java,数据库选择的为mysql(使用了一个mysql前台工具),采用了SSH架构设计,即Struts2、Spring与Hibernate组合3.设计目的 Java EE与中间件课程设计是对所学Java EE与中间件课程的小结,是提高我们对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求我们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。利用所学Java Web程序设计

3、知识,开发设计一套基于Java EE平台的小型管理系统,掌握Struts2、Spring及Hibernate三大框架的配置和使用,巩固数据库基本操作,培养我们分析问题、解决实际问题能力。4. 设计任务自行车出租信息管理系统 必备功能说明:功能描述:用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限和普通用户权限。管理员用户可以添加、查看、修改和删除自行车信息以及自行车租用情况,普通用户只能查询自行车状态,完成租车及还车操作;添加车辆信息:车辆编号、颜色、厂家、使用寿命、造价及租赁状态、租赁时间等;修改车辆信息:车辆编号、颜色、厂家、使用寿命、造价及租赁状态、租赁时间

4、等进行更改;查看车辆状态信息:某编号自行车当前租赁状态(租赁中还是待命),如果被租赁,则查看被租赁时间;删除车辆信息:对车辆信息进行删除(最好支持批量删除)。5设计内容5.1需求分析5.1.1可行性分析 目在各大高校中,自行车是学生主要的交通工具,学生通过自行车可以快速往返于学校的各个地点,节约了不少的时间。但是,由于管理不当或维护不善,很多学生在四年的学习生活中,需要买多辆自行车,这给学生造成了不小的经济负担。另一方面,由于历年来个高校扩招,高校学生数量越来越多,高校停车场资源也越来越紧张,如何提高自行车的利用效率,适当减少自行车的数量,也是尽量来高校思考的问题。通过建立自行车租赁系统,改变

5、高校传统的交通模式,将买车变为租车,一方面,减少的学生的经济负担,为学生提供了更便捷的交通环境,另一方面,也提高了学校自行车的利用率,优化的资源分配。最后,由于有专员管理自行车,能够带给学生更好的用车体验。 本系统本次课程设计我做的一部分是:用户以合法身份登录系统后,才可以进行所有操作;登录系统时,有两种权限:管理员权限和普通用户权限。管理员用户可以添加、查看、修改和删除自行车信息以及自行车租用情况,普通用户只能查询自行车状态,完成租车及还车操作; 在所有的可行性的研究中,包括以下几个方面: (1)经济可行性:投入资金为校园建立一个租赁网站,首先,该校园的形象会有大幅度的提高,而且还可以在网站

6、上进行校园的形象宣传。在前期的投入上,虽然投入研发要花掉一笔钱,但是后期的收益还是挺可观的。因为可以大量的节省人力以及物力。另外,还不受时间和地点的限制。从长远来看,开发这样一套自行车租赁系统,十分有必要的。同时,对应不同的使用场景,我们可以提供不同类别的自行车服务。比如针对学生上课,去食堂的校园交通,我们可以提供普通的自行车,同时在一定时间段内不收取费用。针对学生去校外旅游或者活动,提供专业的公路车或者捷安特山地越野车,该车的使用费较高,可以为学校带来一定的经济利润。(2)营运可行性:一个校园在其运营过程中,会有什么样的瓶颈制约其发展,综合起来,不难发现,会有以下的一些因素。可以采取如下的管

7、理模式:一是通过学校后勤部门和学校学生处进行统一管理,并外聘专业的自行车修理人员对学校所租用的自行车进行维护,妥善的管理各个自行车的情况。为学生提供优质的租车服务。 二是联合学生会相关人员,招募学生志愿者和后勤部门一起对租赁系统进行管理。学生志愿者经过培训后,完全可以胜任学校自行车管理维护的一般工作,即节省了整个系统的运营成本,同时也丰富了学生的课余生活。(3)技术可行性:本系统使用java作为开发语言,java是时下流行的开源的编程语言,平台移植性和安全性决定了其在开发web应用方面具有一定的优势。在数据库方面,选择的mysql数据库,是一个免费开源的数据库,以期简单灵巧以及强大的查询性能著

8、称,使用起来相当方便。 5.1.2系统需求分析本次开发设计的自行车出租信息管理系统系统分为前台预定以及后台的管理员管理模块,在前台的预定中,是供顾客使用的。顾客可以使用这个模块来完成自行车的浏览,以及自行车预定订单的下单过程。自行车下单之后,会设计到自行车的购物模块,在这个模块,主要是对自行车的租赁业务的结算等功能。最后就是一个管理员的模块,管理员模块可以对自行车的原始数据进行一些管理,即增加,删除,以及租赁系统的一些服务信息的更新等等5.1.3数据建模校园自行车租赁系统的各实体及其属性如图5-1所示用户名密码使用寿命厂家车辆编号 管理员 自行车颜色造价租赁状态 用户密码用户名 图5-1各实体

9、及其属性 校园自行车租赁系统的ER图如图5-2所示用户名密码使用寿命厂家车辆编号管理管理信息登录租车系统登录密码用户名租赁状态造价颜色 管理员 用户租借 自行车 图5-2系统的ER图5.1.4功能建模校园自行车租赁系统的环境图如图5-3所示 租 赁 系 统用户 登录信息车辆 租车情况 管理管理员 登录信息 车辆信息 各种管理信息 图5-3环境图校园自行车租赁系统登录数据流图如下所示: 开始 登陆界面 输入用户名和密码 提示用户名或密码错误用户名和密码都 匹配 N 获取权限 Y 生成主页 结束 图5-4用户和管理员的登录流程图5.2数据库设计5.2.1表的设计 本系统采用MYSQL数据库,在my

10、sql中创建名为bicycle的数据库,该数据库中创建3张表。包括管理员登录表,用户登录表,车辆信息表。5.2.2表的结构(1) 管理员登录表(admin)管理员登录表用来记录管理员的登录信息。该表的结构如表5-5所示 表5-1admin表的表结构字段类型长度说明aidint11自动增长编号namevarchar255管理员登录名passwordvarchar255管理员登录密码(2) 用户登录表(user)用户登录表用来记录用户的登录信息。该表的结构如表5-6所示 表5-2user表的表结构 字段类型长度说明uidint11自动增长编号usernamevarchar255用户登录名passw

11、ordvarchar255用户登录密码(3) 车辆信息表(bike)车辆信息表用来记录车辆的各种属性,以及车辆的租借状态。该表的结构如表5-7所示 表5-3bike表的表结构 字段类型长度说明idint11自动增长编号colourvarchar255自行车颜色factoryvarchar255厂家lifeint11使用寿命 续表5-3bike表的表结构 costdouble8,2造价statevarchar255租赁状态timedate租赁时间5.3系统设计 租赁系统管理员登录后的操作包括查看车辆信息,添加车辆信息,修改车辆信息,以及删除车辆信息等模块。 租赁系统用户登录后只能查询自行车状态,

12、完成租车还车操作各模块的流程如下:5.3.1数据增加流程图在添加自行车的各项信息时一定要保证所添加数据的合法性,单条数据的物理主键由数据库自动生成的方式来产生。数据增加流程图如图5-5所示。 开始 自动生成自行车编号输入数据是否合法 N Y将数据添加到数据库 结束 图5-5数据增加流程图5.3.2数据删除流程图 开始数据的删除流程,将当前数据的ID发送到服务器端,服务器端通过该ID可以在数据中找到对应的数据,然后将其删除。当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图5-6所示。 选择需要删除的记录是否删除 N Y 更新数据 图5-6数据

13、删除流程图5.3.3数据修改流程图 开始数据修改流程必须先确定修改哪条数据,可以通过ID将要修改的列发送到服务端。服务端根据传过来的ID将要修改的数据从数据库里取出,然后将该数据显示到页面上。管理员修改该数据,然后再将修改过后的数据提交到服务端,这个过程与数据的保存类似,同样的需要进行数据的合法性以及有效性进行验证。 系统管理修改信息是否合法 N 写入数据库 Y 结束 图5-6数据修改流程图 5.4程序实现5.4.1 环境配置由于本次课程设计要求采用框架来实现程序的运行,首先第一步必须搭建好三大框架的运行环境。添加程序运行过程中所需要的jar包连接到mysql数据库编写配置文件即struts.

14、xml、hibernate.cfg.xml、l、web.xml。5.4.2各模块程序实现 (1)登录模块:这部分代码编写在login.jsp中,主要作用是实现用户或者管理员的登录,用struts标签来实现编写,需要struts2的jar包,并且在页面开头添加如下语句;主要语句如下:自行车租赁系统登录   td      (2)车辆信息列表模块:这部分代码编写在list.jsp中,主要用来列出车辆的各项信息以及租赁状态,若是管理员界面须得有超链接以实现不同界面之间的跳转,关键代码如下: 添加会员信息 修改会员信息 删除会员信息 (3)“

15、add.jsp”用于填写要添加新的自行车信息,它的关键代码如下: 保存页面 新增登录用户 车辆编号 自行车颜色 生产厂家 使用寿命 造价 租赁状态 租赁时间 (4)“delete.jsp”用于删除某一自行车的信息,它的关键代码如下:输入需要删除自行车的id 删除 (5)实体类的实现,主要用在登录时获取用户名以及密码package com.vo;public class Admin private String name;private String password;public String getName() return name;public void setName(String n

16、ame) = name;public String getPassword() return password;public void setPassword(String password) this.password = password;Bike类主要用来封装一些车辆信息的私有属性以及各个属性的set、get方法,它的实现代码如下:package com.vo;public class Bike implements java.io.Serializable private Integer id;private String colour;private String

17、 factory;private String life;private String cost;private String state;private String time;public Bike() public Bike(String colour, String factory, String life, String cost,String state, String time) this.colour = colour;this.factory = factory;this.life = life;this.cost = cost;this.state = state;this

18、.time = time;public Integer getId() return this.id;public void setId(Integer id) this.id = id;public String getColour() return this.colour;public void setColour(String colour) this.colour = colour;public String getFactory() return this.factory;public void setFactory(String factory) this.factory = fa

19、ctory;public String getLife() return this.life;public void setLife(String life) this.life = life;public String getCost() return this.cost;public void setCost(String cost) this.cost = cost;public String getState() return this.state;public void setState(String state) this.state = state;public String g

20、etTime() return this.time;public void setTime(String time) this.time = time; (6)DAO层的实现 DAO类的类名为“userDAO”,该类使用JDBC技术实现,用于和数据库交互,进行相关的增、删、改、查操作,它的实现代码如下:public class userDao private Connection conn;public String getPhoto(int id)Session session=HibernateSessionFactory.getSession();Users temp=(Users)se

21、ssion.load(Users.class,id); return temp.getPhoto();public boolean check(Users user) Session session=HibernateSessionFactory.getSession(); Criteria criteria=session.createCriteria(Users.class);/全部记录 Criterion ct1=Restrictions.eq(username, user.getUsername(); criteria.add(ct1);/相当于过滤 List list=criteri

22、a.list(); System.out.println(size=+list.size(); if(list!=null&list.size()0) return true; return false;public boolean add(Users user)System.out.println(start);Session session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction(); session.save(user);mit();session.close()

23、;System.out.println(hiberante execute);return true;public List findAllUsers() Session session=HibernateSessionFactory.getSession();Query query=session.createQuery(from Users order by id desc);/HQLList list=query.list();/范型System.out.println(list.get(0).getId();return list;public boolean delete(int i

24、d) Session session=HibernateSessionFactory.getSession();/*Query query=session.createQuery(from Users where id=:id);query.setParameter(id,id);Users user=(Users)query.uniqueResult();*/Users user=(Users)session.load(Users.class,id);Transaction ts=session.beginTransaction();session.delete(user);mi

25、t();session.close();return true;public Users find(int id)Session session=HibernateSessionFactory.getSession();Users temp=(Users)session.load(Users.class,id); return temp;public boolean update(Users user)Session session=HibernateSessionFactory.getSession();Users temp=(Users)session.load(Users.class,u

26、ser.getId();Transaction ts=session.beginTransaction();/重新设置数据temp.setAge(user.getAge();temp.setUsername(user.getUsername();temp.setUserpass(user.getUserpass();temp.setPhoto(user.getPhoto();/=session.update(temp);mit();session.close();return true;(7)控制类的实现(以LoginAction为例)“LoginAction”登录页面控制类:pu

27、blic class LoginAction extends ActionSupport private Users user;private String value;private int number;private UserService service;public UserService getService() return service;public void setService(UserService service) this.service = service;public int getNumber() return number;public void setNu

28、mber(int number) this.number = number;public String getValue() return value;public void setValue(String value) this.value = value; public Users getUser() return user;public void setUser(Users user) this.user = user;public String execute()HttpServletRequest request=ServletActionContext.getRequest();H

29、ttpSession session=request.getSession();if(service.CheckLogin(user) return SUCCESS;else return ERROR;6.Servic层的实现“UserService”类的实现代码:public class UserService private userDao dao;public userDao getDao() return dao;public void setDao(userDao dao) this.dao = dao;public boolean CheckLogin(Users user) bo

30、olean b = dao.check(user);return b; public List findAll() List list = dao.findAllUsers();return list;public boolean add(Users user) boolean b=dao.add(user);return b;public boolean delete(int id) boolean b=dao.delete(id);return b;public Users find(int id) return dao.find(id);public boolean update(Users user) return dao.update(user);7.struts.xml的配置 /success.jsp /login.jsp /success.jsp user_find.action user_find.action /list.jsp /user_update.jsp 8.配置“web.x

温馨提示

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

评论

0/150

提交评论