第一次用java写这么多东西,发现开发方面确实比C++高很多,哈哈哈当然要记录下来

~

ps:课设中涉及的所有数据都是存在数据库中的~~~

1、首先当然是连接数据库啦,我这了采用的编程语言是java,所以通过java的jdbc连接SQL server2017

代码:

import java.sql.*;
public class connectDatabase {static Connection conn;public static Connection getConnect(){String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=宾馆管理";String userName="sa";String userPwd="123456";try{Class.forName(driverName);conn=DriverManager.getConnection(dbURL,userName,userPwd);System.out.println("连接数据库成功");}catch(Exception e){e.printStackTrace();System.out.print("连接失败");}return conn;}}

其中的一些电脑的端口配置我就不多讲啦~

2、首先是登陆界面,这里我在sqlserver里面有一张管理员表,表中存着管理员ID和密码,所以实现了简单的权限管理:

public class login extends JFrame implements ActionListener
{private JFrame frame;private JTextField Tname;private JPasswordField Tpwd;private JButton Jexit;private JButton Jlogin;private JLabel labelBack;private ImageIcon backImg = new ImageIcon("image//login.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private JButton changePwd;private JButton addAdmin;Connection con;Statement st;public login(){initData();}public void initData(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}frame = new JFrame("登录");frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frame.setIconImage(icon);frame.setSize(600, 440);frame.setResizable(false);frame.setLayout(null);Container cp = frame.getContentPane();cp.setLayout(null);((JPanel)cp).setOpaque(false);labelBack = new JLabel(backImg);Tname = new JTextField(15);Tpwd = new JPasswordField(15);Jexit = new JButton("退出");Jlogin = new JButton("登陆");changePwd = new JButton("更改密码");addAdmin = new JButton("新增管理");changePwd.setBounds(478,297,90,20);addAdmin.setBounds(476,240,90,20);labelBack.setBounds(0,0,600,400);Tname.setBounds(new Rectangle(253,228,205,39));Tpwd.setBounds(new Rectangle(253,288,205,39));Jlogin.setBounds(new Rectangle(252,343,79,33));Jexit.setBounds(new Rectangle(379,343,79,33));Jlogin.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tname.setFont(new java.awt.Font("宋体",Font.PLAIN,18));changePwd.setForeground(Color.BLUE);addAdmin.setForeground(Color.BLUE);changePwd.setContentAreaFilled(false);addAdmin.setContentAreaFilled(false);frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));cp.add(changePwd);cp.add(addAdmin);cp.add(Tpwd);cp.add(Tname);cp.add(Jexit);cp.add(Jlogin);changePwd.addActionListener(this);addAdmin.addActionListener(this);Jexit.addActionListener(this);Jlogin.addActionListener(this);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource() == Jlogin) {String Sname = Tname.getText();char[] Spwd = Tpwd.getPassword();String s = new String(Spwd);System.out.println(s);boolean isCorrrct = false;if (Sname.isEmpty() || s.isEmpty() ) {JOptionPane.showMessageDialog(frame, "不允许有空!");} else {try {con = connectDatabase.getConnect();String  sql="select * from 管理员表 where 管理员ID='"+Sname+"'"+"and 密码="+"'"+s+"'";st = con.createStatement();ResultSet res = st.executeQuery(sql);if (res.next()) isCorrrct = true;else isCorrrct = false;res.close();st.close();con.close();} catch (Exception e3) {e3.printStackTrace();}if (isCorrrct){JOptionPane.showMessageDialog(frame, "登陆成功!");frame.setVisible(false);functionUI f = new functionUI();f.setVisible(true);}else{JOptionPane.showMessageDialog(frame, "用户名或者密码错误!");Tpwd.setText("");}}}else if(e.getSource() == Jexit){try {frame.setVisible(false);MainFrame m = new MainFrame();m.setVisible(true);}catch (Exception ex){ex.printStackTrace();}}else if(e.getSource() == changePwd){change_pwd cc = new change_pwd();frame.setVisible(false);}else if(e.getSource() == addAdmin){frame.setVisible(false);confirm_addmin cc = new confirm_addmin();}}public static void main(String[] args){login L = new login();}}

里面的图片当然是自己设置的,运行界面最后我会放一些;

3、然后是更改密码,更改密码在登陆界面是有接口的:

public class change_pwd extends JFrame implements ActionListener
{private JFrame frame;private JTextField tname;private JTextField toldpwd;private JPasswordField tnewPwd;private JPasswordField tconfirmPwd;private JButton Jexit;private JButton Jconfirm;private JLabel labelBack;private ImageIcon backImg = new ImageIcon("image//change_pwd.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");Connection con;PreparedStatement st;public change_pwd(){initData();}public void initData(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}frame = new JFrame("新增管理员");frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frame.setIconImage(icon);frame.setSize(600, 440);frame.setResizable(false);frame.setLayout(null);Container cp = frame.getContentPane();cp.setLayout(null);((JPanel)cp).setOpaque(false);labelBack = new JLabel(backImg);Jexit = new JButton("返回");Jconfirm = new JButton("确认");labelBack = new JLabel(backImg);tconfirmPwd = new JPasswordField();tnewPwd = new JPasswordField();toldpwd = new JTextField();tname = new JTextField();labelBack.setBounds(0,0,600,400);Jexit.setBounds(495,341,79,33);Jconfirm.setBounds(495,291,79,33);tconfirmPwd.setBounds(237,348,205,26);tnewPwd.setBounds(237,305,205,26);toldpwd.setBounds(237,262,205,26);tname.setBounds(237,219,205,26);frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));cp.add(Jexit);cp.add(Jconfirm);cp.add(tconfirmPwd);cp.add(tname);cp.add(tnewPwd);cp.add(toldpwd);Jexit.addActionListener(this);Jconfirm.addActionListener(this);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource() == Jconfirm){con = connectDatabase.getConnect();try {String s1 = tname.getText();s1 = s1.trim();String s2 = toldpwd.getText();s2 = s2.trim();String s3 = tnewPwd.getText();s3 = s3.trim();String s4 = tconfirmPwd.getText();s4 = s4.trim();if (s1.isEmpty() || s2.isEmpty() || s3.isEmpty() || s4.isEmpty()) {JOptionPane.showMessageDialog(frame, "不允许有空");} else {String sql1 = "select * from 管理员表 where 管理员ID=? and 密码=?";st = con.prepareStatement(sql1);st.setString(1,s1);st.setString(2,s2);ResultSet rs = st.executeQuery();if(rs.next()){if(s3.equals(s4)){try {String sql2 = "update 管理员表 set 密码 = ? where 管理员ID=?";st = con.prepareStatement(sql2);st.setString(1, s3);st.setString(2, s1);st.executeUpdate();JOptionPane.showMessageDialog(frame,"修改成功!");toldpwd.setText("");tnewPwd.setText("");tconfirmPwd.setText("");tname.setText("");}catch (SQLException ex){JOptionPane.showMessageDialog(frame,"修改失败!");toldpwd.setText("");tnewPwd.setText("");tconfirmPwd.setText("");ex.printStackTrace();}}}else {JOptionPane.showMessageDialog(frame,"账号密码不匹配!");toldpwd.setText("");tnewPwd.setText("");tconfirmPwd.setText("");}}}catch (SQLException ex){ex.printStackTrace();}}else if(e.getSource() == Jexit){try {login LL = new login();frame.setVisible(false);}catch (Exception ex){ex.printStackTrace();}}}public static void main(String[] args){change_pwd L = new change_pwd();}}

4、接着是新增管理员,新增管理员这里需要验证管理员,所以多了个验证管理员的界面(其实我觉得这里有点冗余了~):

(1)、验证管理员:

import java.awt.*;
import java.awt.event.*;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.*;
public class confirm_addmin extends JFrame implements ActionListener
{private JFrame frame;private JTextField Tname;private JPasswordField Tpwd;private JButton Jexit;private JButton Jlogin;private JLabel labelBack;private ImageIcon backImg = new ImageIcon("image//confirm_changepwd.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");Connection con;Statement st;public confirm_addmin(){initData();}public void initData(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}frame = new JFrame("管理员账户确认");frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frame.setIconImage(icon);frame.setSize(600, 440);frame.setResizable(false);frame.setLayout(null);Container cp = frame.getContentPane();cp.setLayout(null);((JPanel)cp).setOpaque(false);labelBack = new JLabel(backImg);Tname = new JTextField(15);Tpwd = new JPasswordField(15);Jexit = new JButton("返回");Jlogin = new JButton("确认");labelBack.setBounds(0,0,600,400);Tname.setBounds(new Rectangle(234,228,205,39));Tpwd.setBounds(new Rectangle(234,288,205,39));Jlogin.setBounds(new Rectangle(233,343,79,33));Jexit.setBounds(new Rectangle(360,343,79,33));Jlogin.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tname.setFont(new java.awt.Font("宋体",Font.PLAIN,18));frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));cp.add(Tpwd);cp.add(Tname);cp.add(Jexit);cp.add(Jlogin);Jexit.addActionListener(this);Jlogin.addActionListener(this);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource() == Jlogin) {String Sname = Tname.getText();char[] Spwd = Tpwd.getPassword();String s = new String(Spwd);System.out.println(s);boolean isCorrrct = false;if (Sname.isEmpty() || s.isEmpty() ) {JOptionPane.showMessageDialog(frame, "不允许有空!");} else {try {con = connectDatabase.getConnect();String  sql="select * from 管理员表 where 管理员ID='"+Sname+"'"+"and 密码="+"'"+s+"'";st = con.createStatement();ResultSet res = st.executeQuery(sql);if (res.next()) isCorrrct = true;else isCorrrct = false;res.close();st.close();con.close();} catch (Exception e3) {e3.printStackTrace();}if (isCorrrct){JOptionPane.showMessageDialog(frame, "管理员确认成功!");frame.setVisible(false);add_admin f = new add_admin();}else{JOptionPane.showMessageDialog(frame, "用户名或者密码错误!");Tpwd.setText("");}}}else if(e.getSource() == Jexit){frame.setVisible(false);login m = new login() ;}}public static void main(String[] args){confirm_addmin L = new confirm_addmin();}}
(2)、新增管理员:
public class add_admin extends JFrame implements ActionListener
{private JFrame frame;private JTextField Tnewname;private JPasswordField Tpwd;private JPasswordField TconfirmPwd;private JButton Jexit;private JButton Jconfirm;private JLabel labelBack;private ImageIcon backImg = new ImageIcon("image//add_admin.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");Connection con;PreparedStatement st;public add_admin(){initData();}public void initData(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}frame = new JFrame("新增管理员");frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frame.setIconImage(icon);frame.setSize(600, 440);frame.setResizable(false);frame.setLayout(null);Container cp = frame.getContentPane();cp.setLayout(null);((JPanel)cp).setOpaque(false);labelBack = new JLabel(backImg);Tnewname = new JTextField(15);Tpwd = new JPasswordField(15);Jexit = new JButton("返回");Jconfirm = new JButton("确认");TconfirmPwd = new JPasswordField(15);TconfirmPwd.setBounds(new Rectangle(237,306,205,26));labelBack.setBounds(0,0,600,400);Tnewname.setBounds(new Rectangle(237,217,205,26));Tpwd.setBounds(new Rectangle(237,262,205,26));Jconfirm.setBounds(new Rectangle(237,351,79,33));Jexit.setBounds(new Rectangle(363,351,79,33));Jconfirm.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18));Tnewname.setFont(new java.awt.Font("宋体",Font.PLAIN,18));TconfirmPwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18));frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));cp.add(TconfirmPwd);cp.add(Tpwd);cp.add(Tnewname);cp.add(Jexit);cp.add(Jconfirm);Jexit.addActionListener(this);Jconfirm.addActionListener(this);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);}public void actionPerformed(ActionEvent e) {con = connectDatabase.getConnect();if(e.getSource() == Jconfirm) {try{String s1 = Tnewname.getText();char[] c1 = Tpwd.getPassword();String s2 = String.valueOf(c1);char[] c2 = TconfirmPwd.getPassword();String s3 = String.valueOf(c2);s1 = s1.trim();s2 = s2.trim();s3 = s3.trim();if(s3.isEmpty()||s2.isEmpty()||s1.isEmpty()){JOptionPane.showMessageDialog(frame,"不允许有空");}else {if(!s3.equals(s2)){JOptionPane.showMessageDialog(frame,"密码不一致");}else{String sql = "insert 管理员表 values(?,?)";st = con.prepareStatement(sql);st.setString(1,s1);st.setString(2,s2);st.executeUpdate();JOptionPane.showMessageDialog(frame,"添加成功");TconfirmPwd.setText("");Tnewname.setText("");Tpwd.setText("");st.close();}}con.close();}catch (Exception ex){JOptionPane.showMessageDialog(frame,"添加失败");ex.printStackTrace();}}else if(e.getSource() == Jexit){frame.setVisible(false);login m = new login() ;}}public static void main(String[] args){add_admin L = new add_admin();}}
5、登陆之后就是功能界面了:
public class functionUI extends JFrame implements ActionListener
{private JButton emptyRoom;private JButton handleRoom;private JButton historyRoom;private JButton manageVip;private JButton exitRoom;private JButton setting;private JButton visitor;private JButton exit;private Container mainPanel;private JPanel jpane1;private JLabel labe1;private ImageIcon img1 = new ImageIcon("image//function.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");public functionUI(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}mainPanel = this.getContentPane();setSize(1024,795);setResizable(false);setDefaultCloseOperation(EXIT_ON_CLOSE);setIconImage(icon);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setLayout(null);setVisible(true);setTitle("管理员界面");jpane1 = new JPanel();jpane1.setSize(1024,768);jpane1.setBounds(0,0,1024,800);jpane1.setLayout(null);emptyRoom = new JButton(new ImageIcon("image//Button//FJCX.png",""));handleRoom = new JButton(new ImageIcon("image//Button//KFCL.jpg",""));historyRoom = new JButton(new ImageIcon("image//Button//KFLS.jpg",""));manageVip = new JButton(new ImageIcon("image//Button//GBGL.png",""));exitRoom = new JButton(new ImageIcon("image//Button//TF.jpg",""));setting = new JButton(new ImageIcon("image//Button//YGGL.png",""));exit = new JButton();visitor = new JButton(new ImageIcon("image//Button//FKGL.png",""));labe1 = new JLabel(img1);labe1.setBounds(0,0,1024,768);emptyRoom.setBounds(new Rectangle(0,154,256,192));handleRoom.setBounds(new Rectangle(258,173,256,192));historyRoom.setBounds(new Rectangle(512,173,256,192));manageVip.setBounds(new Rectangle(768,152,256,192));exitRoom.setBounds(new Rectangle(0,424,256,192));setting.setBounds(new Rectangle(258,405,256,192));exit.setBounds(new Rectangle(768,424,256,192));visitor.setBounds(512,405,258,187);jpane1.setOpaque(false);visitor.setOpaque(false);exit.setOpaque(false);setting.setOpaque(false);exit.setContentAreaFilled(false);this.getLayeredPane().add(labe1,new Integer(Integer.MIN_VALUE));jpane1.add(visitor);jpane1.add(emptyRoom);jpane1.add(handleRoom);jpane1.add(historyRoom);jpane1.add(manageVip);jpane1.add(exitRoom);jpane1.add(setting);jpane1.add(exit);mainPanel.add(jpane1);jpane1.setVisible(true);((JPanel)mainPanel).setOpaque(false);(this).getLayeredPane().add(jpane1,new Integer(Integer.MAX_VALUE));emptyRoom.addActionListener(this);handleRoom.addActionListener(this);historyRoom.addActionListener(this);manageVip.addActionListener(this);exitRoom.addActionListener(this);setting.addActionListener(this);exit.addActionListener(this);visitor.addActionListener(this);}public void actionPerformed(ActionEvent en){if(en.getSource()==emptyRoom){Select_Room sr = new Select_Room();}if(en.getSource() == historyRoom){Select_History sh = new Select_History();}if(en.getSource()==manageVip){VIP_manage vip = new VIP_manage();}if(en.getSource()==exitRoom){cancel_room ca = new cancel_room();}if(en.getSource()==setting){Staff_manage sta = new Staff_manage();}if(en.getSource()==handleRoom){AddCustomerInfo Add = new AddCustomerInfo();}if(en.getSource() == visitor){Visitor vis = new Visitor();}if(en.getSource()==exit){MainFrame M = new MainFrame();this.setVisible(false);M.setVisible(true);}}public static void main(String[] args){functionUI f = new functionUI();}
}
6、然后是房间查询,这里我感觉我想的可细,具体发现就只能靠你们自己了,反正我是想的很全面的(我真的是灰常棒)~
public class Select_Room extends JFrame implements ActionListener{private JTextField textRoom;private JPanel jPane1;private JScrollPane jPane2;private JButton butSelect;private JLabel backLab;private ImageIcon img1;private Container content;private JComboBox com1;private JComboBox com2;private JTable table;private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private Connection con = null;private PreparedStatement st = null;private String[] s2 = {"是","否","全部"};private String[] s1 = {"单人间","双人间","总统间"};private String[] s3 = {"序号","房间号","房间类型","价格","身份证号"};int rownum = 18;int[] colWidth = {50,100,100,100,163};int rowhigh = 29;int num = 0;private DefaultTableModel mod ;public Select_Room(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setTitle("房间查询");con = connectDatabase.getConnect();content = this.getContentPane();setSize(550,728);setResizable(false);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);this.setLayout(null);this.setIconImage(icon);com1 = new JComboBox(s1);com2 = new JComboBox(s2);jPane1 = new JPanel();jPane1.setLayout(null);table_test ta = new table_test();table = ta.getTable(s3,colWidth,rownum,rowhigh);mod = (DefaultTableModel) table.getModel();jPane2 = new JScrollPane(table);butSelect = new JButton("查询");textRoom = new JTextField();butSelect.setBounds(new Rectangle(202,58,140,42));com2.setBounds(new Rectangle(465,19,68,26));com1.setBounds(new Rectangle(270,19,85,26));textRoom.setBounds(new Rectangle(93,19,63,26));jPane1.setBounds(0,0,550,100);jPane2.setBounds(20,112,513,551);com1.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));com2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));img1 = new ImageIcon("image//select_room.jpg");backLab = new JLabel(img1);butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));backLab.setBounds(0,0,550,700);((JPanel)content).setOpaque(false);this.getLayeredPane().add(backLab,new Integer(Integer.MIN_VALUE));jPane2.add(table.getTableHeader());jPane2.setOpaque(false);jPane2.getViewport().setOpaque(false);table.setOpaque(false);jPane1.setOpaque(false);jPane1.add(butSelect);jPane1.add(com1);jPane1.add(com2);jPane1.add(textRoom);content.add(jPane1);content.add(jPane2);butSelect.addActionListener(this);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void actionPerformed (ActionEvent e){if(e.getSource() ==  butSelect){if(num!=0){while (num>rownum){mod.removeRow(num-1);num--;}while(num-->0){table.setValueAt("",num,0);table.setValueAt("",num,1);table.setValueAt("",num,2);table.setValueAt("",num,3);table.setValueAt("",num,4);}}if(!textRoom.getText().isEmpty()){num = setTableData_rno();}else{num = setTableData_else();}}}private int setTableData_rno(){String rno = textRoom.getText();textRoom.setText("");int row = 0;if(!rno.isEmpty()){boolean t = false;try {String sql = "Select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 房间表.房间号= ? and 房间使用表.房间号 = 房间表.房间号";String sql1 = "Select 房间表.房间号,类型,价格 from 房间表 where 房间表.房间号= ? ";st = con.prepareStatement(sql);st.setString(1,rno);ResultSet rs = st.executeQuery();if(rs.next()) {t = true;table.setValueAt("1", 0, 0);table.setValueAt(rs.getString(1).trim(), 0, 1);table.setValueAt(rs.getString(2).trim(), 0, 2);table.setValueAt(String.valueOf(rs.getInt(3)).trim(), 0, 3);table.setValueAt(rs.getString(4).trim(), 0, 4);}else{st = con.prepareStatement(sql1);st.setString(1,rno);rs = st.executeQuery();if (rs.next()){t = true;table.setValueAt("1", 0, 0);table.setValueAt(rs.getString(1).trim(), 0, 1);table.setValueAt(rs.getString(2).trim(), 0, 2);table.setValueAt(String.valueOf(rs.getInt(3)).trim(), 0, 3);}}if(!t){JOptionPane.showMessageDialog(this,"房间号不存在!");}rs.close();}catch (SQLException e){e.printStackTrace();}}return 1;}private int setTableData_else(){boolean t = false;int count = 0;try{String sql,sql1;String form = (String)com1.getSelectedItem();String is_empty = (String)com2.getSelectedItem();if(is_empty!="全部"){if(is_empty=="是"){sql = "select 房间表.房间号,类型,价格 from 房间表 where 类型 = ? and 房间表.房间号 not in(select 房间号 from 房间使用表)";st = con.prepareStatement(sql);st.setString(1,form);ResultSet rs1 = st.executeQuery();st.clearParameters();while (rs1.next()){if(rs1.getRow()>rownum){String[] s = {String.valueOf(count+1).trim(),rs1.getString(1).trim(),rs1.getString(2).trim(),rs1.getString(3).trim()};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs1.getString(1).trim(), count, 1);table.setValueAt(rs1.getString(2).trim(), count, 2);table.setValueAt(String.valueOf(rs1.getInt(3)).trim(), count, 3);count++;}}rs1.close();}else{sql = "select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 类型 = ? and 房间表.房间号 = 房间使用表.房间号";st = con.prepareStatement(sql);st.setString(1,form);ResultSet rs2 = st.executeQuery();while (rs2.next()){if(count+1>rownum){String[] s = {String.valueOf(count+1).trim(),rs2.getString(1).trim(),rs2.getString(2).trim(),rs2.getString(3).trim(),rs2.getString(4).trim()};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs2.getNString(1).trim(), count, 1);table.setValueAt(rs2.getNString(2).trim(), count, 2);table.setValueAt(String.valueOf(rs2.getInt(3)).trim(), count, 3);table.setValueAt(rs2.getNString(4).trim(), count, 4);count++;}}rs2.close();}}else {sql = "select 房间表.房间号,类型,价格 from 房间表 where 类型 = ? and 房间表.房间号 not in(select 房间号 from 房间使用表)";sql1 = "select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 类型 = ? and 房间表.房间号 = 房间使用表.房间号";st = con.prepareStatement(sql1);st.setString(1,form);ResultSet rs4 = st.executeQuery();while (rs4.next()){if(count+1>rownum){String[] s = {String.valueOf(count+1).trim(),rs4.getString(1).trim(),rs4.getString(2).trim(),rs4.getString(3).trim(),rs4.getString(4).trim()};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs4.getString(1).trim(), count, 1);table.setValueAt(rs4.getString(2).trim(), count, 2);table.setValueAt(String.valueOf(rs4.getInt(3)), count, 3);table.setValueAt(rs4.getString(4).trim(), count, 4);count++;}}rs4.close();st = con.prepareStatement(sql);st.setString(1,form);ResultSet rs3 = st.executeQuery();while (rs3.next()){if(count+1>rownum){String[] s = {String.valueOf(count+1).trim(),rs3.getString(1).trim(),rs3.getString(2).trim(),rs3.getString(3).trim(),""};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs3.getString(1).trim(), count, 1);table.setValueAt(rs3.getString(2).trim(), count, 2);table.setValueAt(String.valueOf(rs3.getInt(3)).trim(), count, 3);table.setValueAt("", count, 4);count++;}}}}catch (SQLException e){e.printStackTrace();}return count;}public void finalize(){try{con.close();st.close();}catch (SQLException e){e.printStackTrace();}}public static void main(String[] args) {Select_Room test0 = new Select_Room();}
}
7、然后是开房处理,这里就是往数据库里面添加数据:
public class AddCustomerInfo extends JFrame implements ActionListener
{Connection con;//连接数据库对象;Statement st;//用于发送sql语;private JFrame frame;private JLabel jLabsno;private JLabel jLabsname;private JLabel jLabsex;private JLabel jLabcome;private JLabel jLabform;private JTextField jTextf1;//文本框\private JTextField jTextf2;private JTextField jTextf3;private JTextField jTextf4;private JRadioButton jRadioman;//单选按钮private JRadioButton jRadiowoman;private ButtonGroup buttonGroup1;//按钮组private JButton jButtoncommit;private JRadioButton Room1;private JRadioButton Room2;private JRadioButton Room3;private ButtonGroup buttonGroup2;private JButton buttonBack;private JLabel age;private JLabel leaveTime;private JTextField jTextf5;private JLabel labback;private JLabel jLabDays;private JTextField jTextf6;private JLabel labDay;private ImageIcon img1 = new ImageIcon("image//handleRoom.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//.jpg");public AddCustomerInfo() {try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");} catch (Exception e) {System.out.println(e.toString());}frame = new JFrame("客户信息录入:");jLabsno = new JLabel("身份证号:");//标注jLabsname = new JLabel("姓    名:");jLabsex = new JLabel("性    别:");jLabcome = new JLabel("入房时间:");jLabform = new JLabel("房间类型:");jTextf1 = new JTextField();//文本框jTextf2 = new JTextField();jTextf3 = new JTextField();jTextf4 = new JTextField();labDay = new JLabel("天");jRadioman = new JRadioButton("男");//单选按钮jRadiowoman = new JRadioButton("女");buttonGroup1 = new ButtonGroup();//按钮组jButtoncommit = new JButton("保存");//按钮Room1 = new JRadioButton("单人房");Room2 = new JRadioButton("多人房");Room3 = new JRadioButton("总统房");buttonGroup2 = new ButtonGroup();buttonBack = new JButton("返回");age = new JLabel("年    龄:");jTextf5 = new JTextField();leaveTime = new JLabel("离开时间:");jLabDays = new JLabel("入住天数:");jTextf6 = new JTextField();labback = new JLabel(img1);Init();}public void Init(){frame.setResizable(false);frame.setSize(450,500);frame.setIconImage(icon);frame.getContentPane().setBackground(Color.white);frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);jLabsno.setBounds(new Rectangle(50,30,64,24));jLabsname.setBounds(new Rectangle(50,71,61,27));jLabsex.setBounds(new Rectangle(50,106,61,27));jLabcome.setBounds(new Rectangle(50,185,59,25));jLabform.setBounds(new Rectangle(50,313,54,24));jTextf1.setBounds(new Rectangle(150,30,200,30));jTextf2.setBounds(new Rectangle(150,69,200,30));jTextf4.setBounds(new Rectangle(150,185,200,29));jTextf3.setBounds(new Rectangle(150,143,200,29));jTextf6.setBounds(new Rectangle(150,230,200,29));jLabDays.setBounds(new Rectangle(50,233,54,24));labDay.setBounds(new Rectangle(370,233,30,20));age.setBounds(new Rectangle(50,143,59,25));jRadioman.setBounds(new Rectangle(150,103,65,30));jRadiowoman.setBounds(new Rectangle(250,103,85,30));Room1.setBounds(new Rectangle(150,313,80,30));Room2.setBounds(new Rectangle(230,313,80,30));Room3.setBounds(new Rectangle(310,313,80,30));jButtoncommit.setBounds(new Rectangle(100,370,70,30));buttonBack.setBounds(new Rectangle(250,370,70,30));leaveTime.setBounds(new Rectangle(50,273,59,29));jTextf5.setBounds(new Rectangle(150,273,200,29));labback.setBounds(0,0,450,470);Room1.setOpaque(false);Room2.setOpaque(false);Room3.setOpaque(false);jRadiowoman.setOpaque(false);jRadioman.setOpaque(false);frame.getLayeredPane().add(labback,new Integer(Integer.MIN_VALUE));((JPanel)frame.getContentPane()).setOpaque(false);jRadioman.setSelected(true);//默认被选中Room1.setSelected(true);jButtoncommit.addActionListener(this);buttonBack.addActionListener(this);frame.setLayout(null);frame.add(labDay);frame.add(jLabDays);frame.add(jTextf6);frame.add(age);frame.add(jTextf4);frame.add(jLabsname);frame.add(jTextf1);frame.add(jLabsno);frame.add(jTextf2);frame.add(jLabsex);frame.add(jRadioman);frame.add(jRadiowoman);frame.add(jLabcome);frame.add(jTextf3);frame.add(jLabform);frame.add(Room1);frame.add(Room2);frame.add(Room3);frame.add(leaveTime);frame.add(jTextf5);frame.add(jButtoncommit);frame.add(buttonBack);buttonGroup1.add(jRadioman);//单选按钮加入按钮组中buttonGroup1.add(jRadiowoman);buttonGroup2.add(Room1);buttonGroup2.add(Room2);buttonGroup2.add(Room3);frame.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource() == jButtoncommit) {String sno = jTextf1.getText();String sname = jTextf2.getText();String sex = "";String sage = jTextf3.getText();String scome = jTextf4.getText();String sleave = jTextf5.getText();String days = jTextf6.getText();String sform = "";days = days.trim();sno = sno.trim();if(sno.isEmpty()||sname.isEmpty()||sage.isEmpty()||scome.isEmpty()||sleave.isEmpty()){JOptionPane.showMessageDialog(this,"不允许有空");}else if(sno.length()!=18){JOptionPane.showMessageDialog(this,"身份证号输入有误");}else {int days_num = Integer.parseInt(days);if (jRadioman.isSelected()) sex += "男";if (jRadiowoman.isSelected()) sex += "女";if (Room1.isSelected()) sform += "单人间";if (Room2.isSelected()) sform += "双人间";if (Room3.isSelected()) sform += "总统间";con = connectDatabase.getConnect();try {st = con.createStatement();} catch (Exception e2) {e2.printStackTrace();}try {String sql = "select* from Empty_room where 类型 = '" + sform + "'";ResultSet rs = st.executeQuery(sql);if(rs.next()) {int days_values = days_num*rs.getInt(3);String s = "房间号为:"+rs.getString(1)+"\n价格为:"+days_values+"";System.out.println(s);int t = JOptionPane.showConfirmDialog(null,s,"提示",JOptionPane.YES_NO_OPTION);if(t == JOptionPane.YES_OPTION) {String sql1 = "insert into 客户表 values('" + sno + "','" + sname + "','" + sex + "','" + sage + "','" + scome + "','" + sleave + "')";String sql2 = "insert into 房间使用表 values('"+rs.getString(1)+"','"+sno+"')";String sql3 = "insert into 住房历史表 values('" + sname + "','" + sno + "','" + scome + "','" + sleave + "','"+rs.getString(1)+"')";String sq14 = "insert into 资金收支历史 values("+days_values+",'"+scome+"','"+sno+"','"+rs.getString(1)+"')";st.executeUpdate(sq14);st.executeUpdate(sql3);st.executeUpdate(sql1);st.executeUpdate(sql2);jTextf6.setText("");jTextf1.setText("");jTextf2.setText("");jTextf3.setText("");jTextf4.setText("");jTextf5.setText("");JOptionPane.showMessageDialog(this, "保存成功!");}else if(t == JOptionPane.NO_OPTION){JOptionPane.showMessageDialog(this, "取消保存!");}}else {JOptionPane.showMessageDialog(this, "暂无空余房间,保存失败!");}} catch (Exception ex) {JOptionPane.showMessageDialog(this, "保存失败!");ex.printStackTrace();}}}if(e.getSource() == buttonBack){frame.setVisible(false);}}public static void main(String[] args){AddCustomerInfo x = new AddCustomerInfo();}
}
8、然后是开房历史查询,也很强大的~
public class Select_History  extends JFrame implements ActionListener
{private JPanel jPane1;private JScrollPane jpane2;private JTextField textRno;private JTextField textDate;private JButton butSelect;private JTable table;private JLabel labBackground;private ImageIcon bacIco = new ImageIcon("image//room_history.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private Container cont;private Connection con = null;private PreparedStatement st = null;private String s1[] = {"序号","姓名","身份证号","房间号","入住时间","离开时间"};private int[] colWidth = {40,80,113,60,110,110};private int rowNum = 18;private int rowhigh = 29;private  int num = 0;private DefaultTableModel mod;public Select_History(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}con = connectDatabase.getConnect();setTitle("开房历史查询");setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);setLayout(null);setSize(550,728);setResizable(false);setIconImage(icon);cont = this.getContentPane();((JPanel)cont).setOpaque(false);labBackground = new JLabel(bacIco);labBackground.setBounds(0,0,550,700);this.getLayeredPane().add(labBackground,new Integer(Integer.MIN_VALUE));jPane1 = new JPanel();jPane1.setLayout(null);table_test ta = new table_test();table = ta.getTable(s1,colWidth,rowNum,rowhigh);mod = (DefaultTableModel) table.getModel();jpane2 = new JScrollPane(table);textRno = new JTextField();textDate = new JTextField();butSelect = new JButton("查  询");butSelect.setBounds(202,58,140,42);textDate.setBounds(396,19,132,26);textRno.setBounds(129,19,162,26);jPane1.setBounds(0,0,550,100);jpane2.setBounds(20,112,513,551);jPane1.setOpaque(false);jpane2.setOpaque(false);jpane2.getViewport().setOpaque(false);jPane1.add(butSelect);jPane1.add(textDate);jPane1.add(textRno);butSelect.addActionListener(this);cont.add(jPane1);cont.add(jpane2);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource() == butSelect) {if(num!=0){while (num>rowNum){mod.removeRow(num-1);num--;}while(num-->0){table.setValueAt("",num,0);table.setValueAt("",num,1);table.setValueAt("",num,2);table.setValueAt("",num,3);table.setValueAt("",num,4);table.setValueAt("", num, 5);}}num = setTableData();}}public int setTableData() {int count = 0;String rno = textRno.getText();String data = textDate.getText();if (rno.isEmpty() && data.isEmpty()) JOptionPane.showMessageDialog(this, "身份证号和日期不能都为空!");else {try {if (data.isEmpty()) {String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1,rno);} else if (rno.isEmpty()) {String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 入住时间 = ?";st = con.prepareStatement(sql);st.setString(1,data);} else{String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 入住时间 = ? and 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1,data);st.setString(2,rno);}ResultSet rs = st.executeQuery();while(rs.next()){if(count+1>rowNum){String[] s = {String.valueOf(count+1).trim(),rs.getString(1).trim(),rs.getString(2).trim(),rs.getString(3).trim(),rs.getString(4).trim(),rs.getString(5).trim()};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs.getNString(1).trim(), count, 1);table.setValueAt(rs.getNString(2).trim(), count, 2);table.setValueAt(rs.getNString(3).trim(), count, 3);table.setValueAt(rs.getNString(4).trim(), count, 4);table.setValueAt(rs.getNString(5).trim(), count, 5);count++;}}}catch (SQLException e){e.printStackTrace();}}return count;}public static void main(String[] args){Select_History h = new Select_History();}
}
9、然后是贵宾管理,里面还包括充值界面,然后选中贵宾那一条记录就可以删除贵宾了:
(1)、贵宾管理界面:
public class VIP_manage  extends JFrame implements ActionListener
{private JPanel jPane1;private JScrollPane jpane2;private JTextField textRno;private JTextField textVipID;private JButton butSelect;private JTable table;private JLabel labBackground;private JButton buttonRecharge;private JButton buttonDelete;private ImageIcon bacIco = new ImageIcon("image//VIP_manage.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private Container cont;private Connection con = null;private PreparedStatement st = null;private String s1[] = {"序号","姓名","贵宾卡ID","性别","身份证号","余额"};private int[] colWidth = {40,80,113,40,160,80};private int rowNum = 16;private int rowhigh = 29;private  int num = 0;private DefaultTableModel mod;public VIP_manage(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}con = connectDatabase.getConnect();setTitle("开房历史查询");setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);setLayout(null);setSize(550,728);setResizable(false);setIconImage(icon);cont = this.getContentPane();((JPanel)cont).setOpaque(false);labBackground = new JLabel(bacIco);labBackground.setBounds(0,0,550,700);this.getLayeredPane().add(labBackground,new Integer(Integer.MIN_VALUE));jPane1 = new JPanel();jPane1.setLayout(null);table_test ta = new table_test();table = ta.getTable(s1,colWidth,rowNum,rowhigh);mod = (DefaultTableModel) table.getModel();jpane2 = new JScrollPane(table);textRno = new JTextField();textVipID = new JTextField();butSelect = new JButton("查  询");buttonDelete = new JButton("删除");buttonRecharge = new JButton("充值");buttonDelete.setBounds(302,618,98,30);buttonRecharge.setBounds(150,618,98,30);butSelect.setBounds(202,58,140,42);textVipID.setBounds(396,19,132,26);textRno.setBounds(121,19,162,26);jPane1.setBounds(0,0,550,100);jpane2.setBounds(20,112,513,492);jPane1.setOpaque(false);jpane2.setOpaque(false);jpane2.getViewport().setOpaque(false);jPane1.add(butSelect);jPane1.add(textVipID);jPane1.add(textRno);butSelect.addActionListener(this);buttonRecharge.addActionListener(this);buttonDelete.addActionListener(this);cont.add(jPane1);cont.add(jpane2);cont.add(buttonDelete);cont.add(buttonRecharge);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);num = setTableData();setVisible(true);}private void tableCon(){if(num!=0){while (num>rowNum){mod.removeRow(num-1);num--;}while(num-->0){table.setValueAt("",num,0);table.setValueAt("",num,1);table.setValueAt("",num,2);table.setValueAt("",num,3);table.setValueAt("",num,4);table.setValueAt("", num, 5);}}}public int setTableData() {int count = 0;try {String sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表";st = con.prepareStatement(sql);ResultSet rs = st.executeQuery();while(rs.next()){if(count+1>rowNum){String[] s = {String.valueOf(count+1).trim(),rs.getString(1).trim(),rs.getString(2).trim(),rs.getString(3).trim(),rs.getString(4).trim(),rs.getString(5).trim()};mod.addRow(s);count++;}else {table.setValueAt(count + 1, count, 0);table.setValueAt(rs.getNString(1).trim(), count, 1);table.setValueAt(rs.getNString(2).trim(), count, 2);table.setValueAt(rs.getString(3).trim(), count, 3);table.setValueAt(rs.getNString(4).trim(), count, 4);table.setValueAt(rs.getInt(5), count, 5);count++;}}}catch (SQLException e){e.printStackTrace();}return count;}public void actionPerformed(ActionEvent e){if(e.getSource() == butSelect) {try {String s1 = textRno.getText();String s2 = textVipID.getText();if (s1.isEmpty() && s2.isEmpty()) {JOptionPane.showMessageDialog(this, "身份证和贵宾卡ID不允许都为空!");num = setTableData();} else {String sql;if (s1.isEmpty()) {sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表 where 贵宾ID = ?";st = con.prepareStatement(sql);st.setString(1,s2);}else if (s2.isEmpty()){sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表 where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1,s1);}ResultSet rs = st.executeQuery();if(rs.next()){tableCon();table.setValueAt(1, 0, 0);table.setValueAt(rs.getNString(1).trim(), 0, 1);table.setValueAt(rs.getNString(2).trim(), 0, 2);table.setValueAt(rs.getString(3).trim(), 0, 3);table.setValueAt(rs.getNString(4).trim(), 0, 4);table.setValueAt(rs.getInt(5), 0, 5);num = 1;}else{JOptionPane.showMessageDialog(this,"没有找到此人");num = setTableData();}}}catch (Exception ex){ex.printStackTrace();}}if(e.getSource() == buttonDelete){try {int index = table.getSelectedRow();String s1 = table.getValueAt(index,2).toString();String sql = "delete from 贵宾表 where 贵宾ID = ?";String s2 = "是否删除贵宾:"+s1+"?";int t = JOptionPane.showConfirmDialog(null,s2,"提示",JOptionPane.YES_NO_OPTION);if(t == JOptionPane.YES_OPTION){st = con.prepareStatement(sql);st.setString(1, s1);st.executeUpdate();JOptionPane.showMessageDialog(this,"删除成功!");tableCon();num = setTableData();}else if(t == JOptionPane.NO_OPTION){JOptionPane.showMessageDialog(this,"删除取消!");}}catch (Exception ex){JOptionPane.showMessageDialog(this,"删除失败!");ex.printStackTrace();}}if(e.getSource() == buttonRecharge){try {con.close();recharge_ui rec = new recharge_ui();this.setVisible(false);}catch (Exception ex){ex.printStackTrace();}}}public static void main(String[] args){VIP_manage vv = new VIP_manage();}
}
(2)、充值界面:
public class recharge_ui extends JFrame implements ActionListener
{private JTextField textRno1;private JTextField textvipID1;private JButton buttonSelect;private JTextField textName;private JTextField textSex;private JTextField textRno2;private JTextField textvipID2;private JTextField textbalance;private JTextField textrecharge;private JButton buttonRecharge;private ImageIcon bacIco = new ImageIcon("image//recharge.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private Container cont;private JLabel labelBac;private Connection con;private PreparedStatement st;public recharge_ui(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setSize(550,725);setResizable(false);setIconImage(icon);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);setTitle("贵宾卡充值");setLayout(null);cont = this.getContentPane();labelBac = new JLabel(bacIco);textRno1 = new JTextField();textvipID1 = new JTextField();textName = new JTextField();textSex = new JTextField();textRno2 = new JTextField();textvipID2 = new JTextField();textbalance = new JTextField();textrecharge = new JTextField();buttonSelect = new JButton("查询");buttonRecharge = new JButton("确认充值");buttonRecharge.setBounds(225,618,110,42);buttonSelect.setBounds(202,58,160,42);textrecharge.setBounds(164,545,323,39);textbalance.setBounds(164,463,323,39);textRno2.setBounds(164,299,323,39);textSex.setBounds(165,217,323,39);textName.setBounds(164,135,323,39);textvipID1.setBounds(396,19,132,26);textRno1.setBounds(119,19,162,26);labelBac.setBounds(0,0,550,700);textvipID2.setBounds(164,381,323,39);buttonRecharge.setFont(new java.awt.Font("宋体",Font.PLAIN,18));buttonSelect.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textrecharge.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textbalance.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRno2.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textSex.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textName.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textvipID1.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRno1.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textvipID2.setFont(new java.awt.Font("宋体",Font.PLAIN,18));((JPanel)cont).setOpaque(false);textvipID2.setOpaque(false);textrecharge.setOpaque(false);textbalance.setOpaque(false);textRno2.setOpaque(false);textSex.setOpaque(false);textName.setOpaque(false);buttonSelect.addActionListener(this);buttonRecharge.addActionListener(this);cont.add(textvipID2);cont.add(textvipID1);cont.add(textRno1);cont.add(textRno2);cont.add(textName);cont.add(textrecharge);cont.add(textbalance);cont.add(textSex);cont.add(buttonRecharge);cont.add(buttonSelect);this.getLayeredPane().add(labelBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void actionPerformed(ActionEvent e) {con = connectDatabase.getConnect();if(e.getSource() == buttonSelect){try {String s1 = textRno1.getText();String s2 = textvipID1.getText();if(!s1.isEmpty()||!s2.isEmpty()) {if (!s1.isEmpty()) {String sql = "select 姓名,性别,身份证号,贵宾ID,贵宾卡余额 from VIP where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1, s1);} else if (!s2.isEmpty()) {String sql = "select 姓名,性别,身份证号,贵宾ID,贵宾卡余额 from VIP where 贵宾ID = ?";st = con.prepareStatement(sql);st.setString(1, s2);}ResultSet rs = st.executeQuery();if(rs.next()){textName.setText(rs.getString(1));textSex.setText(rs.getString(2));textRno2.setText(rs.getString(3));textvipID2.setText(rs.getString(4));textbalance.setText(rs.getString(5));}}else{JOptionPane.showMessageDialog(this,"身份证号和贵宾卡ID不允许都为空!");}}catch (SQLException ex){ex.printStackTrace();}}if(e.getSource()==buttonRecharge){try{String s1 = textrecharge.getText();String s2 = textvipID2.getText();s1 = s1.trim();int x1 = Integer.parseInt(s1);if(s1.isEmpty()||s2.isEmpty()){if(s1.isEmpty()) {JOptionPane.showMessageDialog(this, "充值金额不能为空!");}else{JOptionPane.showMessageDialog(this, "无此贵宾!");}}else {String sql1 = "update 贵宾表 set 贵宾卡余额 = 贵宾卡余额+? where 贵宾ID = ?";st = con.prepareStatement(sql1);st.setInt(1,x1);st.setString(2,s2);st.executeUpdate();JOptionPane.showMessageDialog(this,"充值成功!");}}catch (Exception ex){JOptionPane.showMessageDialog(this,"充值失败!");ex.printStackTrace();}}}public static void main(String[] args){recharge_ui c = new recharge_ui();}
}
10、然后是退房呢:
public class cancel_room extends JFrame implements ActionListener
{private JTextField textRno1;private JTextField textRoom1;private JButton buttonSelect;private JTextField textName;private JTextField textSex;private JTextField textRno2;private JTextField textRoom2;private JTextField textComeTime;private JButton buttonCancel;private ImageIcon bacIco = new ImageIcon("image//cancel_room.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private Container cont;private JLabel labelBac;private Connection con;private PreparedStatement st;public cancel_room(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setSize(550,725);setResizable(false);setIconImage(icon);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);setTitle("退房处理");setLayout(null);cont = this.getContentPane();labelBac = new JLabel(bacIco);textRno1 = new JTextField();textRoom1 = new JTextField();textName = new JTextField();textSex = new JTextField();textRno2 = new JTextField();textRoom2 = new JTextField();textComeTime = new JTextField();buttonSelect = new JButton("查询");buttonCancel = new JButton("退订");buttonCancel.setBounds(225,618,98,30);buttonSelect.setBounds(202,58,160,42);textComeTime.setBounds(164,535,323,39);textRoom2.setBounds(164,435,323,39);textRno2.setBounds(164,335,323,39);textSex.setBounds(164,235,323,39);textName.setBounds(164,135,323,39);textRoom1.setBounds(396,19,132,26);textRno1.setBounds(129,19,162,26);labelBac.setBounds(0,0,550,700);buttonCancel.setFont(new java.awt.Font("宋体",Font.PLAIN,18));buttonSelect.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textComeTime.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRoom2.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRno2.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textSex.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textName.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRoom1.setFont(new java.awt.Font("宋体",Font.PLAIN,18));textRno1.setFont(new java.awt.Font("宋体",Font.PLAIN,18));((JPanel)cont).setOpaque(false);textComeTime.setOpaque(false);textRoom2.setOpaque(false);textRno2.setOpaque(false);textSex.setOpaque(false);textName.setOpaque(false);buttonSelect.addActionListener(this);buttonCancel.addActionListener(this);cont.add(textRoom1);cont.add(textRno1);cont.add(textRno2);cont.add(textName);cont.add(textComeTime);cont.add(textRoom2);cont.add(textSex);cont.add(buttonCancel);cont.add(buttonSelect);this.getLayeredPane().add(labelBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void actionPerformed(ActionEvent e) {con = connectDatabase.getConnect();if(e.getSource() == buttonSelect){try {String s1 = textRno1.getText();String s2 = textRoom1.getText();if(!s1.isEmpty()||!s2.isEmpty()) {if (!s1.isEmpty()) {String sql = "select 姓名,性别,客户身份证号,房间号,入住时间 from room_customer where 客户身份证号 = ?";st = con.prepareStatement(sql);st.setString(1, s1);} else if (!s2.isEmpty()) {String sql = "select 姓名,性别,客户身份证号,房间号,入住时间 from room_customer where 房间号 = ?";st = con.prepareStatement(sql);st.setString(1, s2);}ResultSet rs = st.executeQuery();if(rs.next()){textName.setText(rs.getString(1));textSex.setText(rs.getString(2));textRno2.setText(rs.getString(3));textRoom2.setText(rs.getString(4));textComeTime.setText(rs.getString(5));}else{JOptionPane.showMessageDialog(this,"不存在此开房记录!");}}else{JOptionPane.showMessageDialog(this,"身份证号和房间号不允许都为空!");}}catch (SQLException ex){ex.printStackTrace();}}if(e.getSource()==buttonCancel){try{String s1 = textRno2.getText();s1 = s1.trim();if(s1.isEmpty()){JOptionPane.showMessageDialog(this,"不存在此开房记录!");}else {String ss = "确认退掉房间:"+s1+"";int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION);if(t == JOptionPane.YES_OPTION) {String sql1 = "delete from 房间使用表 where 客户身份证号 = ?";String sql2 = "delete from 客户表 where 身份证号 = ?";st = con.prepareStatement(sql1);st.setString(1, s1);st.executeUpdate();st = con.prepareStatement(sql2);st.setString(1, s1);st.executeUpdate();JOptionPane.showMessageDialog(this, "退房成功");textName.setText("");textSex.setText("");textRno2.setText("");textRoom2.setText("");textComeTime.setText("");}else if(t == JOptionPane.NO_OPTION){JOptionPane.showMessageDialog(this, "退房取消");}}}catch (Exception ex){ex.printStackTrace();}try{con.close();}catch (SQLException ex){ex.printStackTrace();}}}public static void main(String[] args){cancel_room c = new cancel_room();}
}
11、接着是员工管理界面,包括新增员工界面,查询到员工数据后可以直接在界面上更改信息然后提交到数据库:
(1)、员工管理:
public class Staff_manage extends JFrame implements ActionListener
{private JTextField textID1;private JButton butSelect;private JTextField textSname;private JTextField textIID2;private JTextField textSex;private JTextField textTle;private JTextField textPost;private JButton butChange;private JButton butDelete;private JLabel labBac;private JButton butAdd;private Connection con = null;private PreparedStatement st = null;private Container cont = null;private ImageIcon bacIco = new ImageIcon("image//staff.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");public Staff_manage(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setTitle("员工管理");con = connectDatabase.getConnect();cont = this.getContentPane();((JPanel)cont).setOpaque(false);setSize(550,725);setResizable(false);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);this.setLayout(null);this.setIconImage(icon);labBac = new JLabel(bacIco);textID1 = new JTextField();textSname = new JTextField();textIID2 = new JTextField();textSex = new JTextField();textTle = new JTextField();textPost = new JTextField();butSelect = new JButton("查询");butChange = new JButton("确认更改");butDelete = new JButton("删除");butAdd = new JButton("增加员工");butAdd.setBounds(398,68,89,19);butSelect.setBounds(202,58,140,42);textTle.setBounds(164,435,323,39);butChange.setBounds(150,618,110,30);butDelete.setBounds(302,618,98,30);textSex.setBounds(164,335,323,39);textSname.setBounds(164,135,323,39);textIID2.setBounds(164,235,323,39);textID1.setBounds(252,19,162,26);textPost.setBounds(164,535,323,39);labBac.setBounds(0,0,550,700);butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butChange.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butDelete.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textPost.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textIID2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textID1.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butAdd.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,14));butAdd.setForeground(Color.blue);butAdd.addActionListener(this);butDelete.addActionListener(this);butChange.addActionListener(this);butSelect.addActionListener(this);butAdd.setContentAreaFilled(false);textPost.setOpaque(false);textIID2.setOpaque(false);textSname.setOpaque(false);textSex.setOpaque(false);textTle.setOpaque(false);cont.add(butChange);cont.add(butDelete);cont.add(butSelect);cont.add(textID1);cont.add(textIID2);cont.add(textPost);cont.add(textSex);cont.add(textSname);cont.add(textTle);cont.add(butAdd);this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void  actionPerformed(ActionEvent e){if(e.getSource() == butSelect){try {String s1 = textID1.getText();if (s1.isEmpty()) {JOptionPane.showMessageDialog(this, "员工ID不允许为空!");} else {String sql = "select * from 员工表 where 员工ID = ?";st = con.prepareStatement(sql);st.setString(1,s1);ResultSet rs = st.executeQuery();if(rs.next()){textSname.setText(rs.getString(1).trim());textIID2.setText(rs.getString(2).trim());textSex.setText(rs.getString(3).trim());textTle.setText(rs.getString(4).trim());textPost.setText(rs.getString(5).trim());}else{JOptionPane.showMessageDialog(this,"无此员工!");textID1.setText("");textSname.setText("");textIID2.setText("");textSex.setText("");textTle.setText("");textPost.setText("");}}}catch (Exception ex){ex.printStackTrace();}}if(e.getSource() == butChange){try{String s0 = textID1.getText();String s1 = textSname.getText();String s2 = textIID2.getText();String s3 = textSex.getText();String s4 = textTle.getText();String s5 = textPost.getText();s0 = s0.trim();s1 = s1.trim();s2 = s2.trim();s3 = s3.trim();s4 = s4.trim();s5 = s5.trim();if(!s0.equals(s2)){JOptionPane.showMessageDialog(this,"员工ID不允许更改!");}else {String sql = "update 员工表 set 姓名 = ?,性别 = ?,电话 = ?,职位 = ? where 员工ID = ?";st = con.prepareStatement(sql);st.setString(1, s1);st.setString(2, s3);st.setString(3, s4);st.setString(4, s5);st.setString(5, s0);st.executeUpdate();JOptionPane.showMessageDialog(this, "更改成功!");textID1.setText("");textSname.setText("");textIID2.setText("");textSex.setText("");textTle.setText("");textPost.setText("");}}catch (Exception ex){JOptionPane.showMessageDialog(this,"更改失败!");ex.printStackTrace();}}if(e.getSource() == butAdd){this.setVisible(false);addStaff adds = new addStaff();}if(e.getSource() == butDelete){try{String s1 = textIID2.getText();s1 = s1.trim();if(s1.isEmpty()){JOptionPane.showMessageDialog(this,"员工ID不允许为空!");}else{String ss = "是否删除员工:"+s1+"?";int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION);if(t == JOptionPane.YES_OPTION) {String sql = "delete from 员工表 where 员工ID = ?";st = con.prepareStatement(sql);st.setString(1, s1);st.executeUpdate();JOptionPane.showMessageDialog(this, "删除成功!");textID1.setText("");textSname.setText("");textIID2.setText("");textSex.setText("");textTle.setText("");textPost.setText("");}else if(t == JOptionPane.NO_OPTION){JOptionPane.showMessageDialog(this, "删除取消!");}}}catch (Exception ex){JOptionPane.showMessageDialog(this, "删除失败!");ex.printStackTrace();}}}public static void main(String[] args){Staff_manage sta = new Staff_manage();}
}
(2)、新增员工界面:
public class addStaff extends JFrame implements ActionListener
{private JTextField textSname;private JTextField textIID2;private JTextField textSex;private JTextField textTle;private JTextField textPost;private JLabel labBac;private JButton butSave;private JButton butBack;private Connection con = null;private PreparedStatement st = null;private Container cont = null;private ImageIcon bacIco = new ImageIcon("image//add_staff.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");public addStaff(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setTitle("员工管理");con = connectDatabase.getConnect();cont = this.getContentPane();((JPanel)cont).setOpaque(false);setSize(550,725);setResizable(false);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);this.setLayout(null);this.setIconImage(icon);labBac = new JLabel(bacIco);textSname = new JTextField();textIID2 = new JTextField();textSex = new JTextField();textTle = new JTextField();textPost = new JTextField();butBack = new JButton("返回");butSave = new JButton("保存");textTle.setBounds(164,435,323,39);textSex.setBounds(164,335,323,39);textSname.setBounds(164,135,323,39);textIID2.setBounds(164,235,323,39);textPost.setBounds(164,535,323,39);labBac.setBounds(0,0,550,700);butSave.setBounds(150,618,98,30);butBack.setBounds(302,618,98,30);textPost.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textIID2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butBack.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butSave.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textPost.setOpaque(false);textIID2.setOpaque(false);textSname.setOpaque(false);textSex.setOpaque(false);textTle.setOpaque(false);cont.add(butBack);cont.add(butSave);cont.add(textIID2);cont.add(textPost);cont.add(textSex);cont.add(textSname);cont.add(textTle);butSave.addActionListener(this);butBack.addActionListener(this);this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void  actionPerformed(ActionEvent e){if(e.getSource() == butBack){this.setVisible(false);Staff_manage sta = new Staff_manage();}if(e.getSource() == butSave ) {try{String s1 = textSname.getText();String s2 = textIID2.getText();String s3 = textSex.getText();String s4 = textTle.getText();String s5 = textPost.getText();if(s1.isEmpty()||s2.isEmpty()||s3.isEmpty()||s4.isEmpty()||s5.isEmpty()){JOptionPane.showMessageDialog(this,"不允许有空!");}else{String sql = "insert into 员工表 values(?,?,?,?,?)";st = con.prepareStatement(sql);st.setString(1,s1);st.setString(2,s2);st.setString(3,s3);st.setString(4,s4);st.setString(5,s5);st.executeUpdate();JOptionPane.showMessageDialog(this,"新建成功!");textSname.setText("");textIID2.setText("");textSex.setText("");textTle.setText("");textPost.setText("");}}catch (Exception ex){JOptionPane.showMessageDialog(this,"新建失败,员工号已被使用");ex.printStackTrace();}}}public static void main(String[] args){addStaff sta = new addStaff();}
}

12、访客管理,包括新增访客
(1)、访客管理界面:
public class Visitor extends JFrame implements ActionListener
{private JTextField textsno;private JButton butSelect;private JTextField textSname;private JTextField textsno2;private JTextField textSex;private JTextField textTle;private JTextField textRoom;private JButton butChange;private JButton butDelete;private JLabel labBac;private JButton butAdd;private Connection con = null;private PreparedStatement st = null;private Container cont = null;private ImageIcon bacIco = new ImageIcon("image//Visitor.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");public Visitor(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setTitle("访客管理");con = connectDatabase.getConnect();cont = this.getContentPane();((JPanel)cont).setOpaque(false);setSize(550,725);setResizable(false);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);this.setLayout(null);this.setIconImage(icon);labBac = new JLabel(bacIco);textsno = new JTextField();textSname = new JTextField();textsno2 = new JTextField();textSex = new JTextField();textTle = new JTextField();textRoom = new JTextField();butSelect = new JButton("查询");butChange = new JButton("确认更改");butDelete = new JButton("删除");butAdd = new JButton("增加访客");butAdd.setBounds(398,68,89,19);butSelect.setBounds(202,58,140,42);textTle.setBounds(164,435,323,39);butChange.setBounds(150,618,110,30);butDelete.setBounds(302,618,98,30);textSex.setBounds(164,335,323,39);textSname.setBounds(164,135,323,39);textsno2.setBounds(164,235,323,39);textsno.setBounds(277,19,162,26);textRoom.setBounds(164,535,323,39);labBac.setBounds(0,0,550,700);butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butChange.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butDelete.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textRoom.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textsno2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textsno.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butAdd.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,14));butAdd.setForeground(Color.blue);butAdd.addActionListener(this);butDelete.addActionListener(this);butChange.addActionListener(this);butSelect.addActionListener(this);butAdd.setContentAreaFilled(false);textRoom.setOpaque(false);textsno2.setOpaque(false);textSname.setOpaque(false);textSex.setOpaque(false);textTle.setOpaque(false);cont.add(butChange);cont.add(butDelete);cont.add(butSelect);cont.add(textsno);cont.add(textsno2);cont.add(textRoom);cont.add(textSex);cont.add(textSname);cont.add(textTle);cont.add(butAdd);this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void  actionPerformed(ActionEvent e){if(e.getSource() == butSelect){try {String s1 = textsno.getText();if (s1.isEmpty()) {JOptionPane.showMessageDialog(this, "身份证号不允许为空!");} else {String sql = "select * from 访客表 where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1,s1);ResultSet rs = st.executeQuery();if(rs.next()){textSname.setText(rs.getString(1).trim());textsno2.setText(rs.getString(2).trim());textSex.setText(rs.getString(3).trim());textTle.setText(rs.getString(4).trim());textRoom.setText(rs.getString(5).trim());}else{JOptionPane.showMessageDialog(this,"无此访客!");textsno.setText("");textSname.setText("");textsno2.setText("");textSex.setText("");textTle.setText("");textRoom.setText("");}}}catch (Exception ex){ex.printStackTrace();}}if(e.getSource() == butChange){try{String s0 = textsno.getText();String s1 = textSname.getText();String s2 = textsno2.getText();String s3 = textSex.getText();String s4 = textTle.getText();String s5 = textRoom.getText();s0 = s0.trim();s1 = s1.trim();s2 = s2.trim();s3 = s3.trim();s4 = s4.trim();s5 = s5.trim();if(!s0.equals(s2)){JOptionPane.showMessageDialog(this,"身份证号不允许更改!");}else {String sql = "update 访客表 set 姓名 = ?,性别 = ?,电话 = ?,到访房间 = ? where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1, s1);st.setString(2, s3);st.setString(3, s4);st.setString(4, s5);st.setString(5, s0);st.executeUpdate();JOptionPane.showMessageDialog(this, "更改成功!");textsno.setText("");textSname.setText("");textsno2.setText("");textSex.setText("");textTle.setText("");textRoom.setText("");}}catch (Exception ex){JOptionPane.showMessageDialog(this,"更改失败!");ex.printStackTrace();}}if(e.getSource() == butAdd){this.setVisible(false);addVisitor adds = new addVisitor();}if(e.getSource() == butDelete){try{String s1 = textsno2.getText();String s2 = textSname.getText();s1 = s1.trim();if(s1.isEmpty()){JOptionPane.showMessageDialog(this,"身份证号不允许为空!");}else{String ss = "是否删除访客:"+s2+"?";int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION);if(t == JOptionPane.YES_OPTION) {String sql = "delete from 访客表 where 身份证号 = ?";st = con.prepareStatement(sql);st.setString(1, s1);st.executeUpdate();JOptionPane.showMessageDialog(this, "删除成功!");textsno.setText("");textSname.setText("");textsno2.setText("");textSex.setText("");textTle.setText("");textRoom.setText("");}else if(t == JOptionPane.NO_OPTION){JOptionPane.showMessageDialog(this, "删除取消!");}}}catch (Exception ex){JOptionPane.showMessageDialog(this, "删除失败!");ex.printStackTrace();}}}public static void main(String[] args){Visitor sta = new Visitor();}
}

(2)、新增访客界面:
public class addVisitor extends JFrame implements ActionListener
{private JTextField textSname;private JTextField textsno2;private JTextField textSex;private JTextField textTle;private JTextField textRoom;private JButton butSave;private JButton butBack;private JLabel labBac;private Connection con = null;private PreparedStatement st = null;private Container cont = null;private ImageIcon bacIco = new ImageIcon("image//addVisitor.jpg");private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");public addVisitor(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}setTitle("访客管理");con = connectDatabase.getConnect();cont = this.getContentPane();((JPanel)cont).setOpaque(false);setSize(550,725);setResizable(false);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);this.setLayout(null);this.setIconImage(icon);labBac = new JLabel(bacIco);textSname = new JTextField();textsno2 = new JTextField();textSex = new JTextField();textTle = new JTextField();textRoom = new JTextField();butBack = new JButton("返回");butSave = new JButton("保存");textTle.setBounds(164,435,323,39);textSex.setBounds(164,335,323,39);textSname.setBounds(164,135,323,39);textsno2.setBounds(164,235,323,39);textRoom.setBounds(164,535,323,39);labBac.setBounds(0,0,550,700);butSave.setBounds(150,618,98,30);butBack.setBounds(302,618,98,30);butBack.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));butSave.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textRoom.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textsno2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18));textRoom.setOpaque(false);textsno2.setOpaque(false);textSname.setOpaque(false);textSex.setOpaque(false);textTle.setOpaque(false);cont.add(butBack);cont.add(butSave);cont.add(textsno2);cont.add(textRoom);cont.add(textSex);cont.add(textSname);cont.add(textTle);butSave.addActionListener(this);butBack.addActionListener(this);this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);setVisible(true);}public void  actionPerformed(ActionEvent e){if(e.getSource() == butSave) {String s1 = textSname.getText();String s2 = textsno2.getText();String s3 = textSex.getText();String s4 = textTle.getText();String s5 = textRoom.getText();try{if (s1.isEmpty() || s2.isEmpty() || s3.isEmpty() || s4.isEmpty() || s5.isEmpty()) {JOptionPane.showMessageDialog(this, "不允许有空!");} else {String sql = "insert into 访客表 values(?,?,?,?,?)";st = con.prepareStatement(sql);st.setString(1, s1);st.setString(2, s2);st.setString(3, s3);st.setString(4, s4);st.setString(5, s5);st.executeUpdate();JOptionPane.showMessageDialog(this, "新建成功!");textSname.setText("");textsno2.setText("");textSex.setText("");textTle.setText("");textRoom.setText("");}}catch(Exception ex){JOptionPane.showMessageDialog(this, "新建失败,访客已存在");ex.printStackTrace();}}if(e.getSource() == null) {Visitor vis = new Visitor();}}public static void main(String[] args){addVisitor sta = new addVisitor();}
}
13、哈哈哈,是不是发现很多查询界面因为有表格运行不了呢,因为还有表格的类,我这里的模板可以返回JScorallPanel或者JTable(考虑周全~):
14、然后是主界面呢:
public class table_test extends JFrame {public JTable table=null;public JScrollPane jp;//返回表格public JTable getTable(String[] s,int[] columnWidth,int colnum,int rowhigh){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();if(table==null){table=new JTable();DefaultTableModel model=new DefaultTableModel(s,colnum);table.setModel(model);TableColumnModel columnModel=table.getColumnModel();int count=columnModel.getColumnCount();for(int i=0;i<count;i++){javax.swing.table.TableColumn column=columnModel.getColumn(i);column.setPreferredWidth(columnWidth[i]);}renderer.setOpaque(false);//render单元格的属性
//遍历表格中所有列,将其渲染器设置为rendererfor(int i = 0 ; i < s.length; i ++){table.getColumn(s[i]).setCellRenderer(renderer);}table.setRowHeight(rowhigh);table.setOpaque(false);}renderer.setHorizontalAlignment(SwingConstants.CENTER);table.setDefaultRenderer(Object.class,renderer);JTableHeader myt = table.getTableHeader();DefaultTableCellRenderer hr = (DefaultTableCellRenderer) myt.getDefaultRenderer();hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);myt.setOpaque(false);// myt.setUI(new WindowsTableHeaderUI());myt.setReorderingAllowed(false);myt.setResizingAllowed(false);return table;}//返回JPanelpublic JScrollPane getJpanel(String[] s,int[] columnWidth,int colnum,int rowhigh){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e) {System.out.println(e.toString());}if(table==null){table=new JTable();DefaultTableModel model=new DefaultTableModel(s,colnum);table.setModel(model);TableColumnModel columnModel=table.getColumnModel();int count=columnModel.getColumnCount();for(int i=0;i<count;i++){javax.swing.table.TableColumn column=columnModel.getColumn(i);column.setPreferredWidth(columnWidth[i]);}DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();renderer.setOpaque(false);//render单元格的属性
//遍历表格中所有列,将其渲染器设置为rendererfor(int i = 0 ; i < s.length; i ++){table.getColumn(s[i]).setCellRenderer(renderer);}table.setRowHeight(rowhigh);table.setOpaque(false);}jp =new JScrollPane(table);JTableHeader myt = table.getTableHeader();DefaultTableCellRenderer hr = (DefaultTableCellRenderer) myt.getDefaultRenderer();hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);myt.setOpaque(false);// myt.setUI(new WindowsTableHeaderUI());myt.setReorderingAllowed(false);myt.setResizingAllowed(false);jp.add(myt);jp.setOpaque(false);jp.getViewport().setOpaque(false);return jp;}}

(1)、主函数:
public class Main {public static  void main(String[] args){MainFrame frame = new MainFrame();//主界面Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = frame.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);}
}
(2)主界面:
public class MainFrame extends JFrame implements ActionListener
{private JPanel contentPane;//主面板private JMenuBar jMenuBar1 ;private JMenu jMenuFile ;private JMenuItem jMenuFileExit ;private JMenu jMenu1;private JMenuItem jMenuItem1;private JMenu jMenu2 ;//上面创建菜单栏private JLabel jLabel ;private JLabel jLabe2 ;private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");private ImageIcon img1 = new ImageIcon("image//mainframe.jpg");private JLabel labImg;public MainFrame(){try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch(Exception e){System.out.println(e.toString());}contentPane = (JPanel) getContentPane();contentPane.setLayout(null);contentPane.setBackground(Color.white);setSize(new Dimension(500,430));//框架大小setTitle("宾馆管理系统");//框架标题setResizable(false);super.setBackground(Color.white);super.setIconImage(icon);jMenuBar1 = new JMenuBar();jMenuFile = new JMenu("文件");jMenuFileExit = new JMenuItem("退出");jMenu1 = new JMenu("宾馆管理");jMenuItem1 = new JMenuItem("管理员登陆");jMenu2 = new JMenu("住房查询");//上面创建菜单栏jLabel = new JLabel("宾馆管理系统");jLabe2 = new JLabel("2017年12月7日");labImg = new JLabel(img1);labImg.setBounds(0,0,500,400);contentPane.setOpaque(false);super.getLayeredPane().add(labImg,new Integer(Integer.MIN_VALUE));try{setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);Init();}catch (Exception e1){e1.printStackTrace();}}private void Init() throws Exception{//创建内容面板和其布局//添加监听器jMenuItem1.addActionListener(this);jMenuFileExit.addActionListener(this);setJMenuBar(jMenuBar1);//添加菜单条//添加菜单组件到菜单条jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenuFileExit);//添加选项到菜单组件jMenuFile.add(jMenuFileExit);jMenu1.add(jMenuItem1);//添加标签到内容面板contentPane.add(jLabel);contentPane.add(jLabe2);//设置标签大小和字体jLabel.setFont(new java.awt.Font("宋体",Font.BOLD,25));jLabel.setBounds(new Rectangle(140,135,275,55));jLabe2.setFont(new java.awt.Font("宋体",Font.BOLD,20));jLabe2.setBounds(new Rectangle(160,190,200,35));Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸Dimension frameSize = this.getSize();//获取主界面尺寸if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);}public void actionPerformed(ActionEvent actionEvent){if(actionEvent.getSource() == jMenuFileExit)//点击的菜单下的“退出”菜单项{System.exit(0);}if(actionEvent.getSource() == jMenuItem1){login ff = new login();this.setVisible(false);}}
}
15、最后放点我这里运行的图,图都是我的美工做的,在这里灰常的感概,有个美工真的是开发快又方便
 




我这里图片显示的都是调成200*200的,所以会有点不协调,实际运行出来的比例很好的。
这就是全部的代码啦,完美运行,毫无压力,数据库中的表格就要靠自己创建了~~。

数据库原理与实践课设(宾馆管理系统),java+jdbc+sqlserver2017相关推荐

  1. 《数据库应用系统实践》------ 酒店客房管理系统

    系列文章 <数据库应用系统实践>------ 酒店客房管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  2. 宾馆客户管理系统数据库java_数据库课程设计+宾馆管理系统+Java+Sql

    [实例简介] 数据库课程设计+宾馆管理系统+Java+Sql [实例截图] [核心代码] elz76n └── 数据库课程设计 ├── sushe │   ├── build │   │   ├── ...

  3. 记录一次实验-华科20年秋季数据库实验(小课设)

    华科20年秋季数据库实验(小课设) 记一次实验 -- VS2019 + Microsoft SQL Server 2019 + C++ 首先,本实验基于你已会基本的数据库操作,SQL语句,准备写一个类 ...

  4. C语言课设-----工资管理系统(附全部源码)

    C语言课设-----工资管理系统(附全部源码) 本系统分三个部分: 1.出售金鱼 2.数字菱形 3.工资管理系统 (ps:另外添加了登录界面 id:qwq password:123 可自己在代码里再更 ...

  5. 《数据库应用系统实践》------ 超市销售管理系统

    系列文章 <数据库应用系统实践>------ 超市销售管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  6. 《数据库应用系统实践》------ 小区停车管理系统

    系列文章 <数据库应用系统实践>------ 小区停车管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  7. 数据库系统课设--人事管理系统

    前言 本博客内容为课设内容,在这里仅提供思路和代码给大家参考,请不要轻易抄袭,最好理解代码并自己实现题目的要求,锻炼自己的编程和逻辑能力.另外,本次的课程设计我是用命令行操作mysql数据库,使用ID ...

  8. 软件工程课设-----日程管理系统

    这学期进行了软件工程课设,题目是:日程管理系统(JavaWeb),为期3周.这三周只有前两天是企业老师讲解是企业老师讲解相关的基础知识(老师讲的水平实在是不可恭维......). 多的不多说.直接进行 ...

  9. C语言课设物资管理系统,C语言课设之物资管理系统.doc

    C语言课设之物资管理系统 C语言课程设计 目 录 1.需求分析: 2.系统总框图: 3.每个模块的设计分析: 4.列出所有定义的函数及说明: 5.举例说明1.2个比较有特点的算法: 6.数据分析.完备 ...

最新文章

  1. Introspection in Python How to spy on your Python objects Guide to Python introspection
  2. android之seekbar
  3. 开发悬赏任务兼职系统运营版源码,仿蚂蚁帮扶众人帮平台
  4. idea主题颜色Linux,IntelliJ IDEA更换主题样式分享
  5. [转载]每日构造与冒烟测试
  6. Teamcenter及其一揽子产品解决方案初步介绍
  7. MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介
  8. (一)Redis初学教程之安装篇
  9. mysql技术blog_Mysql技术 - 包子博客 _ 关注互联网前端、开发、SEO、移动互联网应用技术...
  10. 半监督学习在金融文本分类上的探索和实践
  11. svn拉取文件失败_转自: linux svn命令行无法拉取中文名称的文件
  12. 7. PHP Xhprof
  13. 团队作业4——第一次项目冲刺 FiRsT DaY
  14. 2019年注册测绘师备考历程
  15. 东京攻略(一):计划与现实
  16. My Eighty-second Page - 打家劫舍Ⅱ - By Nicolas
  17. springcloud微服务学习笔记(五十一):Config配置总控中心搭建
  18. 【无标题】水泥稳定层施工
  19. 男生必须给女友纠正的小习惯
  20. vue-element-template模板

热门文章

  1. Android来电秀应用
  2. 数字冰雹 可视化html,数字冰雹数据可视化系列产品(二):网络态势可视化
  3. 完爆面试官!kafka重启后同步时间太长
  4. 我们为之奋斗过的C#之---简单的库存管理系统
  5. dz论坛使用tools修改创始人密码
  6. 水塘采样(Reservoir sampling)算法
  7. win7一直显示正在关机_万能解决win7系统出现问题的办法
  8. 【Java】File类简单概述
  9. 内存屏障与java的内存屏障 —— JVM篇
  10. MySQL 5.7 新特性解读