烟台南山学院毕业设计(论文) 第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
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 extends T> 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