基于JSP的旅店登记系统的设计与实现 - 图文 下载本文

烟台南山学院毕业设计(论文) 第15页

息,登记顾客的入住信息,预定房间,退房等操作。

前台员工点击相应房间的订房按钮,可以填写订房人的身份证号码同时数据库更新房间状态为预定。

点击入住,即可填写顾客的身份信息等,办理入住。实现该功能只需要更新房间状态为入住,同时增加相应的入住信息记录即可。

5.4 其它用户功能 5.4.1打扫房间等

同样,其它用户登陆后,也可以看到与自己的权限相关的主界面。负责打扫房间等服务的用户登陆之后可以看到自己的主界面。需要打扫的房间会有打扫两个字显示出来,用户可以看到哪个房间需要打扫,打扫完毕后,只需要在需要打扫的房间上点击打扫即可。如图5-3.

图5-3 清洁打扫人员主界面

5.4.2 维修房间等

维修人员可以看到需要维修的房间的操作显示为维修。点击维修,房间状态更新为维修。待维修人员维修完毕之后,告知前台用户,填写相应的消费即可(如果不是因为顾客造成的损坏,可以不填写)。如图5-4.

15

烟台南山学院毕业设计(论文) 第16页

图5-4 维修人员主界面

5.5 数据库功能 5.5.1数据库框架配置

在MySql数据库中创建数据库lvdian和数据表,接下来创建应用程序。在Tomcat服务器的安装目录下,找到webapps文件夹,在该文件夹,创建应用程序根目录lvdian,并且在lvdian/web-inf/lib目录文件夹中,存放struts2和hibernate所需要的 jar文件。

5.5.2数据库框架实现

本系统使用hibernate框架操作和管理数据库。使用BaseDao类封装hibernate的对数据的基本增删改查等功能。该类的主要代码如下。

package com.sys.DAO; import java.io.Serializable; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /* * 该BaseDAO使用泛型,接受任何类型的Entity Bean. * Hibernate能够判断实体类的类型,决定操作那个数据表。 * BaseDAO封装了最基本的CRUD操作(增C删D改U查R)。如果某个Entity Bean需要

16

烟台南山学院毕业设计(论文) 第17页

* 其他特别的操作,可以继承BaseDAO,并实现自己的操作, * 达到BaseDAO代码重用的目的 */ /** * BaseDAO封装了最基本的CRUD操作(增C删D改U查R) 该函数包含分页查询 * 该BaseDAO是基本的DAO入口,使用query.setProperties(clazz);作为类型匹配 以防止sql注入攻击 * 如果HQL语句中没有String类型,可以使用其子类,UnSafeBaseDAO * * @author 一叶 * * @param * @time 2014年3月24日17:08:33第四次更改 */ public class BaseDAO { // /////////////////////// // 分页查询 private int pageNo = 1;// 页码 private int pageSize = 10;// 每页数目 // ////////////////////// /** * 插入数据 * * @param 一个对象 */ @SuppressWarnings(\ public void create(T objec) { // 开启一个Hibernate会话 SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 开启事务 session.beginTransaction(); // 将对象保存进数据库 session.save(objec); // 提交事务 session.getTransaction().commit(); } catch (Exception e) { // 如有异常抛出,则回滚事务 session.getTransaction().rollback(); // System.out.println(\插入异常\ } finally { // 关闭会话 session.close(); sessionFactory.close(); } } /** * 更新或者存储数据 * * @param 一个对象

17

烟台南山学院毕业设计(论文) 第18页

*/ @SuppressWarnings(\public void saveORupdate(T objec) { // 开启一个Hibernate会话 SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 开启事务 session.beginTransaction(); // 将对象保存进数据库 session.saveOrUpdate(objec); // 提交事务 session.getTransaction().commit(); } catch (Exception e) { // 如有异常抛出,则回滚事务 session.getTransaction().rollback(); } finally { // 关闭会话 session.close(); sessionFactory.close(); } } /** * 更新数据 * * @param 一个对象 */ @SuppressWarnings(\public void update(T objec) { // 开启一个Hibernate会话 SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 开启事务 session.beginTransaction(); // 将对象保存进数据库 session.update(objec); // 提交事务 session.getTransaction().commit(); } catch (Exception e) { // 如有异常抛出,则回滚事务 session.getTransaction().rollback(); } finally { // 关闭会话 session.close(); sessionFactory.close(); } } /** * 删除数据 18

烟台南山学院毕业设计(论文) 第19页

* * @param 一个对象 */ @SuppressWarnings(\public void delete(T objec) { // 开启一个Hibernate会话 SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 开启事务 session.beginTransaction(); // 将对象保存进数据库 session.delete(objec); // 提交事务 session.getTransaction().commit(); } catch (Exception e) { // 如有异常抛出,则回滚事务 session.getTransaction().rollback(); } finally { // 关闭会话 session.close(); sessionFactory.close(); } } /** * 根据id查找Entity Bean * * @param 类 * @param id * @return 从数据库中找到的一个对象 */ @SuppressWarnings({ \public T find(Class clazz, Serializable id) { // 开启一个Hibernate会话 SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 开启事务 session.beginTransaction(); // 根据ID查找实体类对象 return (T) session.get(clazz, id); } finally { // 提交事务 session.getTransaction().commit(); // 关闭会话 session.close(); sessionFactory.close(); } } /** 19