酒店管理系统
常量类: public?interface?Constants?{ /*************定义连接SQLServer2008字符串常量******************/ String?DRIVER_NAME?=?"com.microsoft.sqlserver.jdbc.SQLServerDriver"; String?URL?=?"jdbc:sqlserver://localhost:1433;databasename=HOTELDB"; String?USERNAME?=?"sa"; String?PASSWORD?=?"123456"; /**********定义业务类型常量***********/ /**********定义Servlet中对象key值常量********/ String?ROOMS?=?"rooms"; String?PAGE_BEAN?=?"pageBean"; String?ROOMTYPES?=?"roomTypes"; String?ROOMINFO?=?"roomInfo"; } util工具 /** ?*? ?*/ package?com.hotel.util; import?java.sql.Connection; import?java.sql.DriverManager; import?java.sql.PreparedStatement; import?java.sql.ResultSet; import?java.sql.ResultSetMetaData; import?java.util.ArrayList; import?java.util.HashMap; import?java.util.List; import?java.util.Map; import?com.hotel.constant.Constants; /** ?*?数据库连接通用类 ?*?连接数据库的步骤: ?*?1.?导入驱动包 ?*?2.?加载驱动 ?*?3.?通过驱动管理器类获取数据库连接 ?*?4.?通过连接对象创建预编译对象 ?*?5.?通过编译对象执行SQL指令并处理返回结果 ?*?6.?关闭相关操作对象 ?* ?*/ public?class?DBUtil?{ /** ?*?定义获取连接对象的方法 ?*? ?*/ private?static?Connection?getConn()?{ //?定义连接对象句柄 Connection?conn?=?null; try?{ //?加载驱动 Class.forName(Constants.DRIVER_NAME); //?通过驱动管理器类获取数据库连接 conn?=?DriverManager.getConnection(Constants.URL,?Constants.USERNAME,?Constants.PASSWORD); }?catch?(Exception?e)?{ e.printStackTrace(); } return?conn; } /** ?*?定义执行简单SQL的增,删,改指令 ?*?@param?sql?调用传入的SQL指令 ?*?@param?objects?执行SQL指令需要的参数 ?*?@return?int?返回方法操作后受影响的行数 ?*/ public?static?int?executeMyUpdate(String?sql,Object...?objects)?{ //?定义接受受影响行数的变量 int?row?=?0; //?定义连接对象句柄 Connection?conn?=?null; //?定义编译对象句柄 PreparedStatement?pst?=?null; //?通过调用本类中的获取连接对象 conn?=?getConn(); try?{ //?通过连接对象创建编译对象 pst?=?conn.prepareStatement(sql); //?设置SQL命令所需的参数 if(objects?!=?null)?{ for(int?i?=0?;i<objects.length;i++)?{ pst.setObject(i+1,?objects[i]); } } //?执行SQL指令并处理返回结果 row?=?pst.executeUpdate(); }?catch?(Exception?e)?{ e.printStackTrace(); }?finally?{ cloSEObjects(pst,conn); } //?返回受影响行数 return?row; } /** ?*?定义执行简单查询语句的通用方法 ?*?@param?sql?调用传入查询的SQL指令 ?*?@param?objects 查询所需参数 ?*?@return List<Map<String,Object>>?返回查询构建集合对象 ?*/ public?static?List<Map<String,Object>>?executeQuery(String?sql,Object...objects)?{ //?定义表集合对象 List<Map<String,Object>>?table?=?new?ArrayList<Map<String,Object>>(); //?定义连接对象句柄 Connection?conn?=?null; //?定义编译对象句柄 PreparedStatement?pst?=?null; //?定义结果集句柄 ResultSet?rs?=?null; //?通过调用本类中的获取连接对象 conn?=?getConn(); try?{ //?通过连接对象创建预编译对象 pst?=?conn.prepareStatement(sql); //?为查询编译对象设置参数 if(objects?!=?null)?{ for(int?i=0;i<objects.length;i++)?{ pst.setObject(i+1,?objects[i]); } } //?通过编译对象执行SQL命令 rs?=?pst.executeQuery(); //?判断结果是否为空 if(rs?!=?null)?{ //?把得到结果集转化为一张虚拟表 ResultSetMetaData?rsd?=?rs.getMetaData(); //?得到查询表有多少个字段(列) int?count?=?rsd.getColumnCount(); //?得到当前遍历的行Map(key,value) while(rs.next())?{ //?定义存储行的Map集合对象 Map<String,Object>?row?=?new?HashMap<String,Object>(); for(int?i=0;i<count;i++)?{ row.put(rsd.getColumnName(i+1),?rs.getObject(rsd.getColumnName(i+1))); } //?把每次遍历的行存储到表集合中 table.add(row); } } }?catch?(Exception?e)?{ e.printStackTrace(); }?finally?{ cloSEObjects(rs,pst,conn); } return?table; } /** ?*?释放操作对象的方法 ?*?@param?objects?需要释放对象的列表 ?*/ private?static?void?cloSEObjects(Object...objects)?{ if(objects?!=?null)?{ for(Object?param?:?objects)?{ try?{ if(param?instanceof?ResultSet)?{ ((ResultSet)param).close(); } if(param?instanceof?PreparedStatement)?{ ((PreparedStatement)param).close(); } if(param?instanceof?Connection)?{ Connection?conn?=?((Connection)param); if(!conn.isClosed())?{ conn.close(); conn?=?null; } } }?catch?(Exception?e)?{ e.printStackTrace(); } } } } } 分页对象: package?com.hotel.entity; import?java.util.List; public?class?PageBean?{ private?int?pageSize;?//?每页显示数 private?int?totalRecords;?//?总记录数 private?int?totalPages;?//?总页数 private?int?currentPage;//?当前页数 private?List<?>?list;?//?存储当前页中所有的记录数 /** ?*?@return?the?pageSize ?*/ public?int?getPageSize()?{ return?pageSize; } /** ?*?@param?pageSize?the?pageSize?to?set ?*/ public?void?setPageSize(int?pageSize)?{ this.pageSize?=?pageSize; } /** ?*?@return?the?totalRecords ?*/ public?int?getTotalRecords()?{ return?totalRecords; } /** ?*?@param?totalRecords?the?totalRecords?to?set ?*/ public?void?setTotalRecords(int?totalRecords)?{ this.totalRecords?=?totalRecords; } /** ?*?@return?the?totalPages ?*/ public?int?getTotalPages()?{ return?totalPages; } /** ?*?@param?totalPages?the?totalPages?to?set ?*/ public?void?setTotalPages(int?totalPages)?{ this.totalPages?=?totalPages; } /** ?*?@return?the?currentPage ?*/ public?int?getCurrentPage()?{ return?currentPage; } /** ?*?@param?currentPage?the?currentPage?to?set ?*/ public?void?setCurrentPage(int?currentPage)?{ this.currentPage?=?currentPage; } /** ?*?@return?the?list ?*/ public?List<?>?getList()?{ return?list; } /** ?*?@param?list?the?list?to?set ?*/ public?void?setList(List<?>?list)?{ this.list?=?list; } } ?房间信息实体类: package?com.hotel.entity; /** ?*?房间信息实体类 ?*?@author?Administrator ?* ?*/ public?class?RoomInfo?{ private?String?roomID=""; private?String?roomeType=""; private?String?roomPositon; private?String?roomDescrip; private?String?roomStatus=""; private?String?typeName; /** ?*?@return?the?typeName ?*/ public?String?getTypeName()?{ return?typeName; } /** ?*?@param?typeName?the?typeName?to?set ?*/ public?void?setTypeName(String?typeName)?{ this.typeName?=?typeName; } /** ?*?@return?the?roomID ?*/ public?String?getRoomID()?{ return?roomID; } /** ?*?@param?roomID?the?roomID?to?set ?*/ public?void?setRoomID(String?roomID)?{ this.roomID?=?roomID; } /** ?*?@return?the?roomeType ?*/ public?String?getRoomeType()?{ return?roomeType; } /** ?*?@param?roomeType?the?roomeType?to?set ?*/ public?void?setRoomeType(String?roomeType)?{ this.roomeType?=?roomeType; } /** ?*?@return?the?roomPositon ?*/ public?String?getRoomPositon()?{ return?roomPositon; } /** ?*?@param?roomPositon?the?roomPositon?to?set ?*/ public?void?setRoomPositon(String?roomPositon)?{ this.roomPositon?=?roomPositon; } /** ?*?@return?the?roomDescrip ?*/ public?String?getRoomDescrip()?{ return?roomDescrip; } /** ?*?@param?roomDescrip?the?roomDescrip?to?set ?*/ public?void?setRoomDescrip(String?roomDescrip)?{ this.roomDescrip?=?roomDescrip; } /** ?*?@return?the?roomStatus ?*/ public?String?getRoomStatus()?{ return?roomStatus; } /** ?*?@param?roomStatus?the?roomStatus?to?set ?*/ public?void?setRoomStatus(String?roomStatus)?{ this.roomStatus?=?roomStatus; } } 房间类型实体: /** ?*?房间类型实体类 ?*?@author?Administrator ?* ?*/ public?class?RoomType?{ private?String?typeID; ????private?String?typeName; ????private?String?area; ????private?String?bedNum; ????private?String?price; ????private?String?airCondition; /** ?*?@return?the?typeID ?*/ public?String?getTypeID()?{ return?typeID; } /** ?*?@param?typeID?the?typeID?to?set ?*/ public?void?setTypeID(String?typeID)?{ this.typeID?=?typeID; } /** ?*?@return?the?typeName ?*/ public?String?getTypeName()?{ return?typeName; } /** ?*?@param?typeName?the?typeName?to?set ?*/ public?void?setTypeName(String?typeName)?{ this.typeName?=?typeName; } /** ?*?@return?the?area ?*/ public?String?getArea()?{ return?area; } /** ?*?@param?area?the?area?to?set ?*/ public?void?setArea(String?area)?{ this.area?=?area; } /** ?*?@return?the?bedNum ?*/ public?String?getBedNum()?{ return?bedNum; } /** ?*?@param?bedNum?the?bedNum?to?set ?*/ public?void?setBedNum(String?bedNum)?{ this.bedNum?=?bedNum; } /** ?*?@return?the?price ?*/ public?String?getPrice()?{ return?price; } /** ?*?@param?price?the?price?to?set ?*/ public?void?setPrice(String?price)?{ this.price?=?price; } /** ?*?@return?the?airCondition ?*/ public?String?getAirCondition()?{ return?airCondition; } /** ?*?@param?airCondition?the?airCondition?to?set ?*/ public?void?setAirCondition(String?airCondition)?{ this.airCondition?=?airCondition; } } com.hotel.dao.RoomInfoDao: package?com.hotel.dao; import?java.util.ArrayList; import?java.util.List; import?java.util.Map; import?com.hotel.entity.PageBean; import?com.hotel.entity.RoomInfo; import?com.hotel.util.DBUtil; public?class?RoomInfoDao?{ /** ?*?查询所有的房间信息 ?*?@return?返回查询的房间信息 ?*/ public?List<RoomInfo>?getRoomInfos()?{ //?定义存储ROomInfo对象的集合 List<RoomInfo>?rooms?=?new?ArrayList<RoomInfo>(); //?定义查询所有房间信息的SQL命令 String?sql?=?"select?*?from?roomInfo?where?1=1"; List<Map<String,Object>>?lst?=?DBUtil.executeQuery(sql); if(lst!=null?&&?lst.size()>0)?{ for(Map<String,Object>?map?:?lst)?{ //?创建一个房间对象 RoomInfo?room?=?new?RoomInfo(); room.setRoomID(map.get("RoomID").toString()); room.setRoomDescrip(map.get("RoomDescrip").toString()); room.setRoomeType(map.get("RoomeType").toString()); room.setRoomPositon(map.get("RoomPositon").toString()); room.setRoomStatus(map.get("RoomStatus").toString()); //?把房间对象添加到房间集合对象中 rooms.add(room); } } return?rooms; } /** ?*?定义分页的查询方法 ?*?@param?page?接收分页对象封装的条件 ?*?@return ?*/ public?List<RoomInfo>?getRoomInfosByPaging(PageBean?page,RoomInfo?roomInfo)?{ //?定义存储ROomInfo对象的集合 List<RoomInfo>?rooms?=?new?ArrayList<RoomInfo>(); //?定义查询所有房间信息的SQL命令 String?sql?=?"select?top?(?)?*?from?(select?row_number()?"?+ "over(order?by?roomID)?rowId,*?from?roomInfo?where?1=1"; //?构建查询SQL命令 if(roomInfo?!=?null)?{ if(!"".equals(roomInfo.getRoomID()))?{ sql+="?and?roomID?like?'%"+roomInfo.getRoomID()+"%'"; }? if(!"".equals(roomInfo.getRoomeType()))?{ sql+="?and?roomeType='"+roomInfo.getRoomeType()+"'"; } if(!"".equals(roomInfo.getRoomStatus()))?{ sql+="?and?roomStatus='"+roomInfo.getRoomStatus()+"'"; } } sql+=")?room?where?rowId>?*(?-1)"; //?构建一个参数列表数组 Object[]?params?=?{ page.getPageSize(),page.getPageSize(),page.getCurrentPage() }; List<Map<String,Object>>?lst?=?DBUtil.executeQuery(sql,params); if(lst!=null?&&?lst.size()>0)?{ for(Map<String,Object>?map?:?lst)?{ //?创建一个房间对象 RoomInfo?room?=?new?RoomInfo(); room.setRoomID(map.get("RoomID").toString()); room.setRoomDescrip(map.get("RoomDescrip").toString()); room.setRoomeType(map.get("RoomeType").toString()); room.setRoomPositon(map.get("RoomPositon").toString()); room.setRoomStatus(map.get("RoomStatus").toString()); //?把房间对象添加到房间集合对象中 rooms.add(room); } } return?rooms; } /** ?*?获取总的记录数 ?*/ public?int?getTotalRecords(RoomInfo?roomInfo)?{ //?定义查询总记录数的SQL命令 String?sql?=?"select?count(*)?as?totalRecords?from?roomInfo?where?1=1"; //?构建查询SQL命令 if(roomInfo?!=?null)?{ if(!"".equals(roomInfo.getRoomID()))?{ sql+="?and?roomID?like?'%"+roomInfo.getRoomID()+"%'"; }? if(!"".equals(roomInfo.getRoomeType()))?{ sql+="?and?roomeType='"+roomInfo.getRoomeType()+"'"; } if(!"".equals(roomInfo.getRoomStatus()))?{ sql+="?and?roomStatus='"+roomInfo.getRoomStatus()+"'"; } } List<Map<String,Object>>?list?=?DBUtil.executeQuery(sql); return?list!=null?&&?list.size()>0??? Integer.parseInt( list.get(0).get("totalRecords").toString() ):0; } /** ?*?根据房间编号删除房间信息 ?*/ public?int?deleteRoomInfoById(RoomInfo?room)?{ int?row?=?0; //?定义删除的SQL命令 String?sql?=?"delete?from?roomInfo?where?roomID=?"; row?=?DBUtil.executeMyUpdate(sql,?room.getRoomID()); return?row; } /** ?*?根据房间编号获取房间信息的方法 ?*/ public?RoomInfo?getRoomById(RoomInfo?room)?{ RoomInfo?roomInfo?=?null; //?定义查询的SQL语句 String?sql?=?"select?*?from?roomInfo?where?roomID=?"; List<Map<String,room.getRoomID()); if(lst!=null?&&?lst.size()>0)?{ for(Map<String,Object>?map?:?lst)?{ //?创建一个房间对象 roomInfo?=?new?RoomInfo(); roomInfo.setRoomID(map.get("RoomID").toString()); roomInfo.setRoomDescrip(map.get("RoomDescrip").toString()); roomInfo.setRoomeType(map.get("RoomeType").toString()); roomInfo.setRoomPositon(map.get("RoomPositon").toString()); roomInfo.setRoomStatus(map.get("RoomStatus").toString()); } } return?roomInfo; } /** ?*?修改房间信息 ?*?@param?room?已经更改的房间信息对象 ?*?@return?返回是否修改成功 ?*/ public?int?upadateRoomInfo(RoomInfo?room)?{ int?row?=?0; //?定义修改的sql命令 String?sql?=?"update?roomInfo?set?"?+ "roomeType=?,RoomDescrip=?,"?+ "RoomPositon=?,RoomStatus=??"?+ "where?RoomID=?"; //?构建参数列表 Object[]?params?=?{ room.getRoomeType(),room.getRoomDescrip(),room.getRoomPositon(),room.getRoomStatus(),room.getRoomID() }; //?调用通用数据访问层的操作方法 row?=?DBUtil.executeMyUpdate(sql,?params); return?row; } /** ?*?添加房间信息的方法 ?*?@param?room ?*?@return ?*/ public?int?addRoomInfo(RoomInfo?room)?{ int?row?=?0; //?定义添加的sql命令 String?sql?=?"insert?into?RoomInfo?values(?,?,?)"; //?构建参数列表 Object[]?params?=?{ room.getRoomID(),room.getRoomeType(),room.getRoomStatus() }; //?调用通用数据访问层的操作方法 row?=?DBUtil.executeMyUpdate(sql,?params); return?row; } } com.hotel.dao.RoomTypeDao: package?com.hotel.dao; import?java.util.ArrayList; import?java.util.List; import?java.util.Map; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; import?com.hotel.util.DBUtil; public?class?RoomTypeDao?{ /** ?*?通过类型编号获取类型名称 ?*?@return ?*/ public?String?getTypeNameById(RoomInfo?room)?{ //?定义查询SQL命令 String?sql?=?"select?typeName?from?roomType?where?typeID=?"; List<Map<String,Object>>?list?=?DBUtil.executeQuery(sql,?room.getRoomeType()); return?list!=null?&&?list.size()>0???list.get(0).get("typeName").toString()?:?null; } /** ?*?定义查询所有房间类型信息的方法 ?*/ public?List<RoomType>?getTypes()?{ List<RoomType>?roomTypes?=?new?ArrayList<RoomType>(); //?定义查询所有类型信息的SQL命令 String?sql?=?"select?*?from?roomType"; List<Map<String,Object>>?list?=?DBUtil.executeQuery(sql); if(list?!=?null?&&?list.size()>0)?{ for(Map<String,Object>?map?:?list)?{ RoomType?type?=?new?RoomType(); type.setTypeID(map.get("TypeID").toString()); type.setTypeName(map.get("TypeName").toString()); roomTypes.add(type); } } return?roomTypes; } } com.hotel.servlet.AddRoomInfoServlet: package?com.hotel.servlet; import?java.io.IOException; import?java.io.PrintWriter; import?java.util.List; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?com.hotel.constant.Constants; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; import?com.hotel.service.RoomInfoService; /** ?*?Servlet?implementation?class?AddRoomInfoServlet ?*/ public?class?AddRoomInfoServlet?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?AddRoomInfoServlet()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?HttpServletResponse?response) ?*/ protected?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{ doPost(request,?response); } /** ?*?@see?HttpServlet#doPost(HttpServletRequest?request,?HttpServletResponse?response) ?*/ protected?void?doPost(HttpServletRequest?request,?IOException?{ //?设置编码格式 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String?flag?=?request.getParameter("flag"); if("add".equals(flag))?{ init(request,response); }?else?if("doAdd".equals(flag))?{ add(request,response); } } //初始化添加页面的方法 private?void?init(HttpServletRequest?request,?IOException?{ //?初始化房间类型列表 List<RoomType>?types?=?new?RoomInfoService().getTypes(); request.setAttribute(Constants.ROOMTYPES,?types); request.getRequestDispatcher("pages/roomInfo/addRoomInfo.jsp").forward(request,?response); } //?执行修改方法 private?void?add(HttpServletRequest?request,?HttpServletResponse?response)??throws?ServletException,?IOException?{ PrintWriter?out?=?response.getWriter(); //?获取要修改的数据 String?roomId?=?request.getParameter("roomId"); String?roomType?=?request.getParameter("roomType"); String?roomPosition?=?request.getParameter("roomPosition"); String?roomState?=?request.getParameter("roomState"); String?roomDesc?=?request.getParameter("roomDesc"); //?把获取的数据封装到RoomInfo对象中 RoomInfo?room?=?new?RoomInfo(); room.setRoomDescrip(roomDesc); room.setRoomeType(roomType); room.setRoomID(roomId); room.setRoomPositon(roomPosition); room.setRoomStatus(roomState); //?调用修改房间信息的业务方法 int?row?=?new?RoomInfoService().addRoomInfo(room); if(row>0)?{ response.sendRedirect("init.jsp"); }?else?{ out.print("<script>alert('添加失败');location.href='init.jsp';</script>"); } out.flush(); out.close(); } } com.hotel.servlet.DeleteRoomInfoServelt: package?com.hotel.servlet; import?java.io.IOException; import?java.io.PrintWriter; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?com.hotel.entity.RoomInfo; import?com.hotel.service.RoomInfoService; /** ?*?Servlet?implementation?class?DeleteRoomInfoServelt ?*/ public?class?DeleteRoomInfoServelt?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?DeleteRoomInfoServelt()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?IOException?{ request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter?out?=?response.getWriter(); //?获取要删除的编号 String?roomId?=?request.getParameter("roomId"); RoomInfo?room?=?new?RoomInfo(); room.setRoomID(roomId); //?调用删除的业务方法 int?row?=?new?RoomInfoService().deleteRoomInfo(room); if(row>0)?{ response.sendRedirect("init.jsp"); }?else?{ out.print("<script>alert('删除失败');location.href='init.jsp';</script>"); } out.flush(); out.close(); } } com.hotel.servlet.QueryRoomInfoServlet: package?com.hotel.servlet; import?java.io.IOException; import?java.util.List; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?com.hotel.constant.Constants; import?com.hotel.entity.PageBean; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; import?com.hotel.service.RoomInfoService; /** ?*?Servlet?implementation?class?QueryRoomInfoServlet ?*/ public?class?QueryRoomInfoServlet?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? //?根据是否存储检索创建RoomInfo对象 public?static?RoomInfo?room?=?null; ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?QueryRoomInfoServlet()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?IOException?{ //?设置编格式 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //?获取当前页 String?currentPage?=?request.getParameter("currentPage"); //?调用查询房间信息的业务方法,创建业务对象的实例 RoomInfoService?service?=?new?RoomInfoService(); //List<RoomInfo>?rooms?=?service.getRoomInfos(); //request.setAttribute(Constants.ROOMS,?rooms); //?获取房间编号,房间类型,房间状态 String?roomId?=?request.getParameter("roomID")==null?"":request.getParameter("roomID"); String?roomType?=?request.getParameter("roomType")==null?"":request.getParameter("roomType"); String?roomState?=?request.getParameter("roomState")==null?"":request.getParameter("roomState"); //?判断是否存储分页条件 if(!"".equals(roomId)||?(!"-1".equals(roomType)?&&?!"".equals(roomType))?||?(!"-1".equals(roomState)?&&?!"".equals(roomState)))?{ room?=?new?RoomInfo(); if(!"".equals(roomId))?{ room.setRoomID(roomId); } if(!"-1".equals(roomType))?{ room.setRoomeType(roomType); } if(!"-1".equals(roomState))?{ room.setRoomStatus(roomState); } } //?创建分页对象 PageBean?page?=?new?PageBean(); page.setPageSize(10); page.setCurrentPage(Integer.parseInt(currentPage)); ????PageBean?pageBean?=?service.getRoomInfosByPaging(page,room); ????List<RoomType>?types?=?service.getTypes(); ????request.setAttribute(Constants.PAGE_BEAN,?pageBean); ????request.setAttribute(Constants.ROOMTYPES,?types); request.getRequestDispatcher("pages/roomInfo/roomTypManager.jsp?currentPage=1").forward(request,?response); } } package?com.hotel.servlet; import?java.io.IOException; import?java.util.List; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?com.hotel.constant.Constants; import?com.hotel.entity.PageBean; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; import?com.hotel.service.RoomInfoService; /** ?*?Servlet?implementation?class?QueryRoomInfoServlet ?*/ public?class?QueryRoomInfoServlet?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? //?根据是否存储检索创建RoomInfo对象 public?static?RoomInfo?room?=?null; ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?QueryRoomInfoServlet()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?response); } } com.hotel.servlet.UpdateServlet: package?com.hotel.servlet; import?java.io.IOException; import?java.io.PrintWriter; import?java.util.List; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?com.hotel.constant.Constants; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; import?com.hotel.service.RoomInfoService; /** ?*?Servlet?implementation?class?UpdateServlet ?*/ public?class?UpdateServlet?extends?HttpServlet?{ private?static?final?long?serialVersionUID?=?1L; ??????? ????/** ?????*?@see?HttpServlet#HttpServlet() ?????*/ ????public?UpdateServlet()?{ ????????super(); ????????//?TODO?Auto-generated?constructor?stub ????} /** ?*?@see?HttpServlet#doGet(HttpServletRequest?request,?IOException?{ //?设置参数 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String?flag?=?request.getParameter("flag"); if("init".equals(flag))?{ init(request,response); }?else?if("update".equals(flag))?{ update(request,?response); } } //初始化修改页面的方法 private?void?init(HttpServletRequest?request,?IOException?{ //?获取房间编号 String?roomId?=?request.getParameter("roomId"); RoomInfo?room?=?new?RoomInfo(); room.setRoomID(roomId); //?调用根据房间编号查询房间信息的业务方法 RoomInfo?roomInfo?=?new?RoomInfoService().getRoomById(room); request.setAttribute(Constants.ROOMINFO,?roomInfo); //?初始化房间类型列表 List<RoomType>?types?=?new?RoomInfoService().getTypes(); request.setAttribute(Constants.ROOMTYPES,?types); request.getRequestDispatcher("pages/roomInfo/updateRoomInfo.jsp").forward(request,?response); } //?执行修改方法 private?void?update(HttpServletRequest?request,?IOException?{ PrintWriter?out?=?response.getWriter(); //?获取要修改的数据 String?roomId?=?request.getParameter("roomId"); String?roomType?=?request.getParameter("roomType"); String?roomPosition?=?request.getParameter("roomPosition"); String?roomState?=?request.getParameter("roomState"); String?roomDesc?=?request.getParameter("roomDesc"); //?把获取的数据封装到RoomInfo对象中 RoomInfo?room?=?new?RoomInfo(); room.setRoomDescrip(roomDesc); room.setRoomeType(roomType); room.setRoomID(roomId); room.setRoomPositon(roomPosition); room.setRoomStatus(roomState); //?调用修改房间信息的业务方法 int?row?=?new?RoomInfoService().updateRoomInfo(room); if(row>0)?{ response.sendRedirect("init.jsp"); }?else?{ out.print("<script>alert('修改失败');location.href='init.jsp';</script>"); } out.flush(); out.close(); } } com.hotel.service.RoomInfoService: package?com.hotel.service; import?java.util.ArrayList; import?java.util.List; import?com.hotel.dao.RoomInfoDao; import?com.hotel.dao.RoomTypeDao; import?com.hotel.entity.PageBean; import?com.hotel.entity.RoomInfo; import?com.hotel.entity.RoomType; public?class?RoomInfoService?{ //?创建RoomInfoDao对象实例 private?RoomInfoDao?roomDao?=?new?RoomInfoDao(); //?创建RoomTypeDao对象实例 private?RoomTypeDao?typeDao?=?new?RoomTypeDao(); /** ?*?查询所有房间信息的业务方法 ?*/ public?List<RoomInfo>?getRoomInfos()?{ //?创建存储带有类型名称的房间信息集合对象 List<RoomInfo>?rooms?=?new?ArrayList<RoomInfo>(); List<RoomInfo>?roomInfos?=?roomDao.getRoomInfos(); System.out.println(roomInfos); for(RoomInfo?room?:?roomInfos)?{ String?typeName?=?typeDao.getTypeNameById(room); room.setTypeName(typeName); //?把处理好的房间信息对象填充到rooms集合中 rooms.add(room); } return?rooms; } /** ?*?获取所有类型信息的业务方法 ?*?@return ?*/ public?List<RoomType>?getTypes()?{ return?typeDao.getTypes(); } /** ?*?分页查询房间信息的方法 ?*?@param?page ?*?@return ?*/ public?PageBean?getRoomInfosByPaging(PageBean?page,RoomInfo?roomInfo)?{ //?设置分页对象的总记录数 int?totalRecords?=?roomDao.getTotalRecords(roomInfo); //?计算中页数[如果不能被整除总页数加1] int?totalPages?=?totalRecords%page.getPageSize()==0??? totalRecords/page.getPageSize():?totalRecords/page.getPageSize()+1; int?currentPage?=?page.getCurrentPage(); //?创建分页对象实例 PageBean?pageBean?=?new?PageBean(); pageBean.setPageSize(page.getPageSize()); pageBean.setCurrentPage(currentPage); pageBean.setTotalPages(totalPages); pageBean.setTotalRecords(totalRecords); //?获取当前页分页集合[把集合中房间类型编号转化为类型名称] List<RoomInfo>?roomInfos?=?roomDao.getRoomInfosByPaging(pageBean,roomInfo); //?创建存储带有类型名称的房间信息集合对象 List<RoomInfo>?rooms?=?new?ArrayList<RoomInfo>(); for(RoomInfo?room??:?roomInfos)?{ String?typeName?=?typeDao.getTypeNameById(room); room.setTypeName(typeName); rooms.add(room); } pageBean.setList(rooms); return?pageBean; } /** ?*?删除房间信息的业务方法 ?*?@param?room ?*?@return ?*/ public?int?deleteRoomInfo(RoomInfo?room)?{ return?roomDao.deleteRoomInfoById(room); } /** ?*?根据房间信息编号获取房间信息的业务方法 ?*?@param?room?房间对象 ?*?@return?返回房间信息对象 ?*/ public?RoomInfo?getRoomById(RoomInfo?room)?{ return?roomDao.getRoomById(room); } /** ?*?修改房间信息的业务方法 ?*?@param?room ?*?@return ?*/ public?int?updateRoomInfo(RoomInfo?room)?{ return?roomDao.upadateRoomInfo(room); } /** ?*?添加房间信息的业务方法 ?*?@param?room ?*?@return ?*/ public?int?addRoomInfo(RoomInfo?room)?{ return?roomDao.addRoomInfo(room); } } /HOTELMANAGER/WebContent/init.jsp(初始化界面) <%@page?import="com.hotel.servlet.QueryRoomInfoServlet"%> <%@?page?language="java"?contentType="text/html;?charset=UTF-8" ????pageEncoding="UTF-8"%> <% ????QueryRoomInfoServlet.room?=?null; response.sendRedirect("queryRoomInfoServlet?currentPage=1"); %> /HOTELMANAGER/WebContent/pages/roomInfo/addRoomInfo.jsp: <%@page?import="com.hotel.entity.RoomType"%> <%@page?import="java.util.List"%> <%@?page?language="java"?contentType="text/html;?charset=UTF-8" ????pageEncoding="UTF-8"%> <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"> <title>Insert?title?here</title> </head> <body> <fieldset?style="width:?50%"> <legend>房间信息添加</legend> <form?action="addRoomInfoServlet?flag=doAdd"?method="post"> <table?width="100%"> <tr> <td>房间编号:</td> <td> <input?type="text"?name="roomId"?/> </td> </tr> <tr> <td>房间类型:</td> <td> <select?name="roomType"> <option?value="-1">==请选择==</option> <% List<RoomType>?types?=?(List<RoomType>)request.getAttribute("roomTypes"); if(types!=null)?{ for(RoomType?type?:?types)?{ %> <option?value="<%=type.getTypeID()?%>"><%=type.getTypeName()?%></option> <%?} }%> </select> </td> </tr> <tr> <td>房间位置:</td> <td><input?name="roomPosition"?/></td> </tr> <tr> <td>房间状态:</td> <td> <select?name="roomState"> <option?value="-1">==请选择==</option> <option?value="入住">入住</option> <option?value="空闲">空闲</option> </select> </td> </tr> <tr> <td>房间描述</td> <td><textarea?name="roomDesc"?cols="50"?rows="5"></textarea></td> </tr> <tr> <td?colspan="2"?align="center"> <input?type="submit"?style="width:?100px;"?value="添加"?/> </td> </tr> </table> </form> </fieldset> </body> </html> /HOTELMANAGER/WebContent/pages/roomInfo/roomTypManager.jsp: <%@page?import="com.hotel.entity.RoomType"%> <%@page?import="com.hotel.entity.PageBean"%> <%@page?import="com.hotel.entity.RoomInfo"%> <%@page?import="java.util.List"%> <%@?page?language="java"?contentType="text/html;?charset=UTF-8" ????pageEncoding="UTF-8"%> <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"> <title>操作房间信息</title> <style?type="text/css"> *?{ margin:?0px; padding:?0px; text-decoration:?none; } </style> </head> <body> <fieldset?style="width:?50%;"> <legend>房间信息检索</legend> <form?action="queryRoomInfoServlet?currentPage=1"?method="post"> <div?style="padding-bottom:?4px;"> 房间编号:<input?type="text"?style="width:?50px;"?name="roomID"?/> 房间类型: <select?name="roomType"> <option?value="-1">==请选择==</option> <% List<RoomType>?types?=?(List<RoomType>)request.getAttribute("roomTypes"); if(types!=null)?{ for(RoomType?type?:?types)?{ %> <option?value="<%=type.getTypeID()?%>"><%=type.getTypeName()?%></option> <%?} }%> </select> 房间状态: <select?name="roomState"> <option?value="-1">==请选择==</option> <option?value="入住">入住</option> <option?value="空闲">空闲</option> </select> <input?type="submit"?value="检索"?/> <input?type="button"?onclick="location.href='init.jsp'"?value="查询所有"?/> </div> </form> </fieldset> <fieldset?style="width:?50%;text-align:?center;"> <legend>房间信息列表</legend> <table?style="padding-bottom:?4px;"?border="1"?width="100%"?cellpadding="0"?cellspacing="0"> <tr> <th>房间编号</th> <th>房间类型</th> <th>房间位置</th> <th>房间描述</th> <th>房间状态</th> <th>编辑</th> </tr> <% //?获取得到房间信息集合对象 PageBean?pageBean?=?(PageBean)request.getAttribute("pageBean"); if(pageBean?!=?null)?{ for(RoomInfo?room?:?(List<RoomInfo>)pageBean.getList())?{ %> <tr> <td><%=room.getRoomID()?%></td> <td><%=room.getTypeName()?%></td> <td><%=room.getRoomPositon()?%></td> <td><%=room.getRoomDescrip()?%></td> <td><%=room.getRoomStatus()?%></td> <td> <a?href="updateServlet?roomId=<%=room.getRoomID()?%>&flag=init">修改</a>| <a?href="deleteRoomInfoServelt?roomId=<%=room.getRoomID()?%>">删除</a> </td> </tr> <% } } %> <tr> <td?colspan="6"><a?href="addRoomInfoServlet?flag=add">添加房间信息</a></td> </tr> </table> </fieldset> <div?style="width:?50%;height:?17px;font-size:12px;text-align:?right;"> <a?href="queryRoomInfoServlet?currentPage=1">首页</a> <a?href="queryRoomInfoServlet?currentPage=<%=pageBean.getCurrentPage()-1<1??1?:?pageBean.getCurrentPage()-1?%>">上一页</a> <a?href="queryRoomInfoServlet?currentPage=<%=pageBean.getCurrentPage()+1>pageBean.getTotalPages()?pageBean.getTotalPages():pageBean.getCurrentPage()+1?%>">下一页</a> <a?href="queryRoomInfoServlet?currentPage=<%=pageBean.getTotalPages()?%>">尾页</a> <span> 总记录数:<%=pageBean.getTotalRecords()?%>条 当前第<%=pageBean.getCurrentPage()?%>页 总页数:<%=pageBean.getTotalPages()?%>页 </span> </div> </body> </html> /HOTELMANAGER/WebContent/pages/roomInfo/updateRoomInfo.jsp: <%@page?import="com.hotel.entity.RoomInfo"%> <%@page?import="com.hotel.entity.RoomType"%> <%@page?import="java.util.List"%> <%@?page?language="java"?contentType="text/html;?charset=UTF-8" ????pageEncoding="UTF-8"%> <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"> <title>Insert?title?here</title> </head> <% //?获取修改的房间信息对象 RoomInfo?room?=?(RoomInfo)request.getAttribute("roomInfo"); if(room?!=null)?{ %> <body> <fieldset?style="width:?50%"> <legend>房间信息修改</legend> <form?action="updateServlet?flag=update"?method="post"> <table?width="100%"> <tr> <td>房间编号:</td> <td> <%=room.getRoomID()?%> <input?type="hidden"?value="<%=room.getRoomID()?%>"?name="roomId"?/> </td> </tr> <tr> <td>房间类型:</td> <td> <select?name="roomType"> <option?value="-1">==请选择==</option> <% List<RoomType>?types?=?(List<RoomType>)request.getAttribute("roomTypes"); if(types!=null)?{ for(RoomType?type?:?types)?{ %> <option?<%=room.getRoomeType().equals(type.getTypeID())?"selected='selected'":""?%>??value="<%=type.getTypeID()?%>"><%=type.getTypeName()?%></option> <%?} }%> </select> </td> </tr> <tr> <td>房间位置:</td> <td><input?name="roomPosition"?value="<%=room.getRoomPositon()?%>"?/></td> </tr> <tr> <td>房间状态:</td> <td> <select?name="roomState"> <option?value="-1">==请选择==</option> <option?<%=room.getRoomStatus().equals("入住")?"selected='selected'":""?%>?value="入住">入住</option> <option?<%=room.getRoomStatus().equals("空闲")?"selected='selected'":""?%>?value="空闲">空闲</option> </select> </td> </tr> <tr> <td>房间描述</td> <td><textarea?name="roomDesc"?cols="50"?rows="5"><%=room.getRoomDescrip()?%></textarea></td> </tr> <tr> <td?colspan="2"?align="center"> <input?type="submit"?style="width:?100px;"?value="修改"?/> </td> </tr> </table> </form> </fieldset> </body> <%?}?%> </html> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |