1、一 系统简介本系统为汽车租赁系统,采用 B/S 实现。可以实现不同权限的浏览和管理。管理员可以用于汽车租赁公司对汽车租赁事务的管理,包括新增、删除车辆记录,新增、删除用户记录,新增、删除租赁信息记录,新增、删除管理人员记录以及会员设置,客户则可以浏览车辆信息和个人的租车信息。主要技术:jsp运行环境:winows os+apache tomcat5.5+sql server 2005+jdk1.6开发软件:myeclipse6.0.1开源软件:jxl.jar,sqljdbc4.jar二 数据库设计1. 需求分析因为客户只能亲自到汽车租赁公司去注册或租赁车辆,因而,两者权限分配如下:汽车公司方面
2、:能够对车辆,租赁信息和用户信息进行管理。超级管理员还可以对公司内部人员的信息进行管理客户方面:只能浏览车辆信息和个人用户信息及个人租赁信息。数据流图如下: 管理员客户新增客户个人信息用户信息文件车辆新增交易车辆信息交易信息文件个人信息新增车辆车辆信息文件新增管理员内部人员管理人员信息文件2. 概念设计ER 图如下所示:管理员管理车辆车辆租用车辆客 户1N管理用户工号 用户名 类型密码编号 类型状态起租时间单价租用时间编号客户编号车辆编号经手人员起租时间押金租用时间返回金额状态证件号用户名会员类型密码MNnm信誉度3. 逻辑设计建表语句如下:用户表:/后为各字段意义声明create table
3、 userinfo(pid varchar(8) primary key, /用户证件号username varchar(8), /用户名isvip int, /用户类型,是否为会员 xingyu int, /信誉度,满分 100。password varchar(8) /用户登录密码);管理员表:create table manager(wid varchar(8) primary key, /管理员工号type int, /类型,超级管理员(部门经理等)和普通管理员username varchar(8), /管理员用户名password varchar(8) /管理员密码);车辆表:cre
4、ate table taxi(tid varchar(8) primary key,/车辆编号type varchar(8), /车辆类型state varchar(8), /车辆状态,是否可租wid varchar(8), /year int, /起租年月日month int,day int,time int,detailinfo text, /车辆详细信息pay int /租用单价);租车信息表create table rentinfo(rid int identity(1,1) primary key, /交易编号wid varchar(8), /经手人员pid varchar(8),
5、/客户证件号tid varchar(8),/ 车辆号码yajin int, /押金backmoney int, /返还金额pay int,/单价broken varchar(8),/破坏情况outyear int,/结束交易时间outmonth int,outday int,time int,/实际使用时间state varchar(8)/交易状态);-设置外键BEGIN TRANSACTIONalter table dbo.rentinfo add constraint FK_rentinfo_tidforeign key (tid)references dbo.taxi(tid) alte
6、r table dbo.rentinfo add constraint FK_rentinfo_pidforeign key (pid)references dbo.userinfo(pid) alter table dbo.rentinfo add constraint FK_rentinfo_widforeign key (wid)references dbo.manager(wid) COMMIT TRANSACTION4. 数据库建立与备份,恢复在 sql server 2005 建立一个数据库,名称为 hello,执行以上建表语句即可。或者将 hello.mdf,hello_log.
7、ldf 文件恢复。sp_attach_db hello, C:Program FilesMicrosoft SQL ServerMSSQLDatahello.mdf, C:Program FilesMicrosoft SQL ServerMSSQLDatahello_log.ldf sp_attach_single_file_db hello,C:Program FilesMicrosoft SQL ServerMSSQLDatahello.mdf备份:将 hello 数据库备份成 hello.bak 文件三 框架实现系统总体框架实现如下图所示:不同权限的用户登录超级管理员内部人员管理客户信息
8、管理车辆信息管理普通管理员客户信息管理车辆信息管理客户个人信息浏览车辆信息浏览租车信息浏览财务信息管理财务信息管理以下是各模块的子功能截图:登录模块截图:超级管理员页面截图:普通管理员页面截图:员工信息管理页面截图:员工 信息管理(单表查询)员工业绩查询(多表查询)增加员工(单表插入数据)修改个人密码客户信息管理:交易信息查询(多表查询)客户信息查询车辆信息管理:新增车辆信息车辆信息查询财务信息查询:数据操作实现方法:定义一个类 DataManager,在每个 jsp 页面中实例化这个类,并调用它的某个方法,完成数据库的连接,数据查询,删除,及修改操作。程序示例:如 check.jsp 里面可
9、以验证用户登录信息,并转向不同页面。DataManager dm = new DataManager();/实例化 DataManager 类ResultSet rs = null;if (type = 1) /如果是以客户身份登录String sql = “select * from userinfo where username=“ + username+ “ + “ and password = “ + password + “;rs = dm.getResult(sql);/由用户名和密码获取记录if (rs.next() /如果记录不为空,表明该客户存在String pid = rs
10、.getString(“pid“);/保存该用户信息session.setAttribute(“type“, “1“);session.setAttribute(“pid“, pid);session.setAttribute(“username“, username);response.sendRedirect(“user.jsp“);/转向客户页面 else /转向管理员页面,以下与上面 if 语句类似。String sql = “select * from manager where username=“+ username + “ + “ and password = “ + password+ “ and type =“+type;System.out.println(sql);rs = dm.getResult(sql);if (rs.next() String wid = rs.getString(“wid“);session.setAttribute(“type“, t);