1、 宾馆客房管理系统个人任务实施细节神马浮云软件09412长春大学软件学院二一年十二月宾馆客房管理系统 个人任务实施细节目 录组员:王光亮.1组员:高兴.6组员:郑睿明.23组员:张立鹏.26组员:周鑫.39组长:王光亮宾馆客房管理系统个人任务实施细节一、实现步骤与方法 1.使用数据库Access存储数据。 2.系统功能: 整个系统分4个模块: (1)登录管理模块:主要实现登录身份的管理、密码管理。 (2)客房信息管理:录入房间信息、修改房间信息、查询房间信息, 删除房间信息。(3)客房经营管理:客房使用情况、宾馆订房、客房预订、宾馆退房。(4)客户信息查询:客户信息查询。(5)管理员信息管理:
2、管理员查询、添加、删除。3.宾馆客房管理系统的页面由五部分组成: (1) 宾馆客房管理系统登陆界面的设计 (2) 客房管理管理页面的设计 (3) 客房经营管理页面的设计 (4) 客户信息查询页面的设计 (5) 管理员信息管理页面的设计二、所遇到的问题1.参数传递问题2.数据库操作问题3.数组index越界4.格式转换问题三、程序源代码/更改RoomCatogry信息public static void updateroom(Message m)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString
3、 sql=update RoomCatogry set RoomType=?,Area=?,BedNum=?,Price=?,AirCondition=?,TV=?,Internet=?,Status=? where RoomID=?;ps=conn.prepareStatement(sql);ps.setString(1,m.getroomtype();ps.setString(2,m.getarea();ps.setString(3,m.getbednum();ps.setString(4,m.getprice();ps.setString(5,m.getaircondition();ps
4、.setString(6,m.gettv();ps.setString(7,m.getinternet();ps.setString(8,m.getstatus();ps.setString(9,m.getroomid();ps.executeUpdate();int flag=ps.executeUpdate();if (flag0)JOptionPane.showMessageDialog(null, 更改数据成功!);elseJOptionPane.showMessageDialog(null, 更改失败!);catch(Exception e)JOptionPane.showMessa
5、geDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);public static void updateroom(String roomid)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString sql=update RoomCatogry set Status=空房 where RoomID=?;ps=conn.prepareStatement(sql);ps.setString(1,
6、roomid);ps.executeUpdate();catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);public static void updatestatus(Message m,int f)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;String sql = null;tryif(f=1)sql=updat
7、e RoomCatogry set Status=预定 where RoomID=?; else if(f=2)sql=update RoomCatogry set Status=入住 where RoomID=?;ps=conn.prepareStatement(sql);ps.setString(1,m.getroomid();ps.executeUpdate();catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(con
8、n, ps);/更改CustomerInfopublic static void updatecustomer(Message m)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString sql=update CustomerInfo set Price=?,CName=?,CSex=?,CAge=?,CIdentityID=?, +CAddress=?,CBookRoomTime=?,CRoomTime=?,CDay=?,CPayMoney=? where RoomID=?; ps=conn.p
9、repareStatement(sql);ps.setString(1,m.getprice();ps.setString(2,m.getcname();ps.setString(3,m.getcsex();ps.setString(4,m.getcage();ps.setString(5,m.getcidentityid();ps.setString(6,m.getcaddress();ps.setString(7, m.getcbookroomtime();ps.setString(8, m.getcroomtime();ps.setString(9, m.getcday();ps.set
10、String(10, m.getcpaymoney();ps.setString(11,m.getroomid();ps.executeUpdate();catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);/更改管理员信息public static void updateuser(Message m)Connection conn=DBHelper.getConnection();PreparedState
11、ment ps=null;tryString sql=update UserInfo set UserName=?, +Password=?,Sex=?,Email=? where UserID=?;ps=conn.prepareStatement(sql); ps.setString(1,m.getusername();ps.setString(2,m.getpassword();ps.setString(3,m.getsex();ps.setString(4,m.getemail();ps.setString(5,m.getuserid();int rows=ps.executeUpdat
12、e();if (rows0)JOptionPane.showMessageDialog(null, 更新了+rows+条数据!);elseJOptionPane.showMessageDialog(null, 更新失败!);catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);四、设计总结这次课程设计是我认识到了自己知识点上的不足。熟悉掌握了MyEclipse的界面与操作过程。把自己这个学期所学的知识进行了一
13、次系统的总结与查收。既锻炼了我的思维能力,又增加了团队合作的意识。我还深刻认识到了自身的不足。要设计好一个程序,如果前期的分析与设计没有做好,就会延误后续的工作,影响最终的设计效果。对于本次命题,细节处更需考虑与修改完善,还需后期的努力学习与提升自己的能力。组员:高兴宾馆客房管理系统个人任务实施细节一、 实现步骤与方法首先,大概了解所需要的功能,设计出整个E-R图,确定图中的各个属性以及各属性之间的联系。我所负责的内容主要包括客房信息管理、客房经营管理、客户信息查询、管理员信息管理。这些为后面的逻辑结构设计打下基础。利用数据库与JAVA语言来实现以上这些功能。主要的E-R图如下:二、 所遇到的
14、问题连接数据库不太会,知识点模糊数据库语言生疏,总是出错格式转换的问题越界的问题三、 程序源代码package ccu.hotelsystem.control;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Vector;import javax.swing.JOptionP
15、ane;import ccu.hotelsystem.db.DBHelper;public class DAO public static int roomtypenum;/类型房间数目public static int roomnum;/总房间数目public static String money;public static boolean isUser(String userid,String password)Connection conn=null;PreparedStatement ps = null;tryconn=DBHelper.getConnection();ps=conn
16、.prepareStatement(select Password from UserInfo where UserID=?);ps.setString(1,userid);ResultSet rs=ps.executeQuery();/ 执行SQL语句,获得查询结果集if (rs.next() & rs.getRow()0)/ 查询到用户信息String password1=rs.getString(1);/ 获得密码if (password1.equals(password)return true;/ 密码正确返回trueelseJOptionPane.showMessageDialog(
17、null, 密码不正确。,JOptionPane.ERROR_MESSAGE);return false;elseJOptionPane.showMessageDialog(null, 无此用户。,JOptionPane.ERROR_MESSAGE);return false;catch(Exception ex)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);return false;finallyDBHelper.close(conn, ps);/添加public static void inse
18、rtroom(Message m)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString sql=insert into RoomCatogry(RoomID,RoomType,Area,BedNum,Price,AirCondition,TV,Internet,Status) +values(?,?,?,?,?,?,?,?,?);ps=conn.prepareStatement(sql);ps.setString(1,m.getroomid();ps.setString(2,m.getroomt
19、ype();ps.setString(3,m.getarea();ps.setString(4,m.getbednum();ps.setString(5,m.getprice();ps.setString(6,m.getaircondition();ps.setString(7,m.gettv();ps.setString(8,m.getinternet();ps.setString(9,m.getstatus();int flag=ps.executeUpdate();if (flag0)JOptionPane.showMessageDialog(null, 添加成功!);elseJOpti
20、onPane.showMessageDialog(null, 添加失败!);catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);/按RoomID删除public static void deleteroom(String roomid)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString sql=delete
21、 from RoomCatogry where RoomID=? ;ps=conn.prepareStatement(sql);ps.setString(1,roomid);int flag=ps.executeUpdate();if (flag0)JOptionPane.showMessageDialog(null, 删除+flag+条数据!);elseJOptionPane.showMessageDialog(null, 删除失败!);catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERRO
22、R_MESSAGE);finallyDBHelper.close(conn, ps);/更改public static void updateroom(Message m)Connection conn=DBHelper.getConnection();PreparedStatement ps=null;tryString sql=update RoomCatogry set RoomType=?,Area=?,BedNum=?,Price=?,AirCondition=?,TV=?,Internet=?,Status=? where RoomID=?;ps=conn.prepareState
23、ment(sql);ps.setString(1,m.getroomtype();ps.setString(2,m.getarea();ps.setString(3,m.getbednum();ps.setString(4,m.getprice();ps.setString(5,m.getaircondition();ps.setString(6,m.gettv();ps.setString(7,m.getinternet();ps.setString(8,m.getstatus();ps.setString(9,m.getroomid();ps.executeUpdate();int fla
24、g=ps.executeUpdate();if (flag0)JOptionPane.showMessageDialog(null, 更改数据成功!);elseJOptionPane.showMessageDialog(null, 更改失败!);catch(Exception e)JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);public static void updatestatus(Message m,int f)Connecti
25、on conn=DBHelper.getConnection();PreparedStatement ps=null;String sql = null;tryif(f=1)sql=update RoomCatogry set Status=预定 where RoomID=?; else if(f=2)sql=update RoomCatogry set Status=入住 where RoomID=?;ps=conn.prepareStatement(sql);ps.setString(1,m.getroomid();ps.executeUpdate();catch(Exception e)
26、JOptionPane.showMessageDialog(null, 数据库异常!n,JOptionPane.ERROR_MESSAGE);finallyDBHelper.close(conn, ps);/按RoomID查询,返回数据public static Vector queryroomid(String roomid)Connection conn=null;PreparedStatement ps=null;tryVector vector=new Vector();conn=DBHelper.getConnection();ps=conn.prepareStatement(sel
27、ect * from RoomCatogry where RoomID=+roomid+);ResultSet rs=ps.executeQuery();int rows=0;while (rs.next() & rs.getRow()0)/ 遍历结果集Vector row=new Vector ();/ 创建存放记录的hang向量rows+;/ 为记录向量赋值for (int col=1;col0)JOptionPane.showMessageDialog(null, 查询到了+rows+条数据!);elseJOptionPane.showMessageDialog(null, 没有查询到数
28、据!);return vector;catch(Exception e)JOptionPane.showMessageDialog(null, 查询失败!n+e.getMessage();return null;finallyDBHelper.close(conn, ps);/按RoomType查询public static Vector queryroomtype(String roomtype)Connection conn = null;PreparedStatement ps=null;tryVector vector=new Vector();/ 创建存放数据的向量 conn=DBH
29、elper.getConnection();/ 获得数据连接/ 创建PreparedStatement对象,并传递SQL语句ps=conn.prepareStatement(select * from RoomCatogry where RoomType=+roomtype+);ResultSet rs=ps.executeQuery();/ 执行SQL语句,获得查询结果集int rows=0;while (rs.next() & rs.getRow()0)/ 遍历结果集Vector row=new Vector ();/ 创建存放记录的hang向量rows+;/ 为记录向量赋值for (in
30、t col=1;col0)JOptionPane.showMessageDialog(null, 查询到了+rows+条数据!);elseJOptionPane.showMessageDialog(null, 没有查询到数据!);return vector;/ 返回数据向量catch(Exception ex)JOptionPane.showMessageDialog(null, 查询失败!n+ex.getMessage();return null;finallyDBHelper.close(conn, ps);/按Status查询返回数组public static Vector querys
31、tatus(String status)Connection conn = null;PreparedStatement ps=null;tryVector vector=new Vector();/ 创建存放数据的向量 conn=DBHelper.getConnection();/ 获得数据连接/ 创建PreparedStatement对象,并传递SQL语句ps=conn.prepareStatement(select * from RoomCatogry where Status=+status+);ResultSet rs=ps.executeQuery();/ 执行SQL语句,获得查询
32、结果集int rows=0;while (rs.next() & rs.getRow()0)/ 遍历结果集Vector row=new Vector ();/ 创建存放记录的hang向量rows+;/ 为记录向量赋值for (int col=1;col0)JOptionPane.showMessageDialog(null, 查询到了+rows+条数据!);elseJOptionPane.showMessageDialog(null, 没有查询到数据!);return vector;/ 返回数据向量catch(Exception ex)JOptionPane.showMessageDialog
33、(null, 查询失败!n+ex.getMessage();return null;finallyDBHelper.close(conn, ps);/按房间类型与房间状态查询public static Vector queryroomtypestatus(String roomtype,String status)Connection conn = null;PreparedStatement ps=null;tryVector vector=new Vector();/ 创建存放数据的向量 conn=DBHelper.getConnection();/ 获得数据连接/ 创建PreparedS
34、tatement对象,并传递SQL语句ps=conn.prepareStatement(select * from RoomCatogry where Status=+status+ and RoomType=+roomtype+);ResultSet rs=ps.executeQuery();/ 执行SQL语句,获得查询结果集int rows=0;while (rs.next() & rs.getRow()0)/ 遍历结果集Vector row=new Vector ();/ 创建存放记录的hang向量rows+;/ 为记录向量赋值for (int col=1;col0)JOptionPan
35、e.showMessageDialog(null, 查询到了+rows+条数据!);elseJOptionPane.showMessageDialog(null, 没有查询到数据!);return vector;/ 返回数据向量catch(Exception ex)JOptionPane.showMessageDialog(null, 查询失败!n+ex.getMessage();return null;finallyDBHelper.close(conn, ps);public static Object queryroomtypestatus1(String roomtype,String
36、 status)roomtypenum=0;Connection conn = null;PreparedStatement ps=null;try conn=DBHelper.getConnection();/ 获得数据连接/ 创建PreparedStatement对象,并传递SQL语句ps=conn.prepareStatement(select * from RoomCatogry where Status=+status+ and RoomType=+roomtype+);ResultSet rs=ps.executeQuery();/ 执行SQL语句,获得查询结果集while (rs
37、.next() & rs.getRow()0)/ 遍历结果集roomtypenum+;return roomtypenum;catch(Exception ex)JOptionPane.showMessageDialog(null, 查询失败!n+ex.getMessage();return null;finallyDBHelper.close(conn, ps);/返回查询数组public static Vector queryroom()Connection conn = null;PreparedStatement ps=null;tryVector vector=new Vector();/ 创建存放数据的向量 conn=DBHelper.getConnection();