Java GUI 连接数据库完成酒店客房系统进行增删改查功能
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Scanner;
///
//如果组件添加在panel小在面板中设置jp1.setLayout(null);
// jp1.add(jtf,null);嘉jp1.setLayout(null);可以实现隐藏文本框鼠标点击后才显示;
public class 文本框监视器 extends JFrame {
String roomnum;
String id;
String name;
String condition;
String room;
String roomchange;
String droproom;
String roomcheck;
String namecheck;
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
public 文本框监视器() {
setTitle("订房");
setBounds(500, 100, 500, 300);
setDefaultCloseOperation(3);
// Container c = getContentPane();
//setLayout(null);
JTabbedPane jtp=new JTabbedPane();
jtp.add("订房与入住",jp1);
jp1.setLayout(null);
// jtp.add("换房",jp2);
add(jtp);
jtp.add("换房",jp2);
jtp.add("退房",jp3);
jtp.add("查房",jp4);
// add("订房与入住",jp3);
// add("订房与入住",jp4);
// JTabbedPane jtp=new JTabbedPane();
// JTabbedPane jfp1=new JTabbedPane();
// jtp.add()
// jtp. setVisible(true);
setVisible(true);
JLabel jl = new JLabel("订房的房号");
JLabel j2 = new JLabel("订房人的id");
JLabel j3 = new JLabel("订房人姓名");
JLabel j4 = new JLabel("预定/入住");
// jp1.setSize(250,250);
// add(jl, BorderLayout.NORTH);
jl.setBounds(60,60,100,30);
j2.setBounds(60,100,100,30);
j3.setBounds(60,140,100,30);
j4.setBounds(60,180,100,30);
jp1.add(jl);
jp1.add(j2);
jp1.add(j3);
jp1.add(j4);
JTextField jtf = new JTextField();//可以用setbounds设置长宽高位置
//jtf.setBounds(160,160,100,30);
JTextField jtf1 = new JTextField();
// jp1.add(jtf);
jtf.setBounds(160,60,200,30);
jp1.add(jtf);
//jp1.add(jtf1);
jtf1.setBounds(160,100,200,30);
jp1.add(jtf1);
JTextField jtf2 = new JTextField();
jtf2.setBounds(160,140,200,30);
jp1.add(jtf2);
JTextField jtf3 = new JTextField();
jtf3.setBounds(160,180,200,30);
jp1.add(jtf3,null);
// add(jtf, BorderLayout.CENTER);
// add(jtf1, BorderLayout.SOUTH);
// jtf.addActionListener();
JComboBox jcb = new JComboBox<String>();//下拉列表
// JCheckBox checkBox1=new JCheckBox("预定");
// JCheckBox cb2=new JCheckBox("入住");
// jp1.add(checkBox1);
//jp1.add(cb2);
//add(jcb,BorderLayout.CENTER);
//JTextArea jta = new JTextArea();//文本域
jtp.add("换房",jp2);
jp2.setLayout(null);
add(jtp);
setVisible(true);
JLabel jl1 = new JLabel("这个房间房号");
JLabel jl2 = new JLabel("换到这个房号");
jl1.setBounds(60,60,100,30);
jl2.setBounds(60,100,100,30);
jp2.add(jl1);
jp2.add(jl2);
JTextField jtfb = new JTextField();//可以用setbounds设置长宽高位置
JTextField jtfb1 = new JTextField();
jtfb.setBounds(160,60,200,30);
jp2.add(jtfb);
jtfb1.setBounds(160,100,200,30);
jp2.add(jtfb1);
JTextField jtfb2 = new JTextField();
jtfb2.setBounds(160,140,200,30);
jp2.add(jtfb2);
JButton jbb = new JButton("换房");
jp2.add(jbb);
jbb.setBounds(400,150,80,30);
jbb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
room = jtfb.getText();
roomchange = jtfb1.getText();
boolean flag = new 换房jdbc().login(room,roomchange );
if (flag) {
System.out.println("换房成功");
new 对话框3();
setVisible(true);
} else {
System.out.println("换房失败");
new 对话框4();
setVisible(true);
}
}
});
jtp.add("退房",jp3);
jp3.setLayout(null);
add(jtp);
setVisible(true);
JLabel jcl = new JLabel("退房房号");
jcl.setBounds(60,60,100,30);
jp3.add(jcl);
JTextField jtfc = new JTextField();//可以用setbounds设置长宽高位置
jtfc.setBounds(160,60,200,30);
jp3.add(jtfc);
JButton jbc = new JButton("退房");
jp3.add(jbc);
jbc.setBounds(400,150,80,30);
jbc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
droproom = jtfc.getText();
boolean flag = new 退房jdbc().login(droproom);
if (flag) {
System.out.println("退房成功");
new 对话框5();
setVisible(true);
} else {
System.out.println("退房失败");
new 对话框6();
setVisible(true);
}
}
});
setTitle("查房");
setBounds(500, 100, 500, 300);
setDefaultCloseOperation(3);
jtp.add("查房",jp4);
jp4.setLayout(null);
add(jtp);
setVisible(true);
JLabel jdl = new JLabel("房号");
JLabel jd2 = new JLabel("客户名字");
jdl.setBounds(60,60,100,30);
jd2.setBounds(60,100,100,30);
jp4.add(jdl);
jp4.add(jd2);
JTextField jtfd = new JTextField();//可以用setbounds设置长宽高位置
JTextField jtfd1 = new JTextField();
jtfd.setBounds(160,60,200,30);
jp4.add(jtfd);
jtfd1.setBounds(160,100,200,30);
jp4.add(jtfd1);
JTextField jtfd2 = new JTextField();
jtfd2.setBounds(160,140,200,30);
JButton jbd = new JButton("查询");
jp4.add(jbd);
jbd.setBounds(400,150,80,30);
jbd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
roomcheck = jtfd.getText();
namecheck = jtfd1.getText();
boolean flag = new 查房jdbc().login(roomcheck,namecheck);
if (flag) {
System.out.println("查到消息");
new 对话框7();
setVisible(true);
} else {
System.out.println("未查到消息");
new 对话框8();
setVisible(true);
}
}
}
);
JButton jb = new JButton("确定");
//add(jb, BorderLayout.EAST);
//jb.setBounds(180,200,80,30);
jp1.add(jb);
jb.setBounds(400,150,80,30);
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
roomnum = jtf.getText();
id = jtf1.getText();
name=jtf2.getText();
condition=jtf3.getText();
boolean flag = new 订房jdbc().login(roomnum, id,name,condition);
if (flag) {
System.out.println("订房成功");
new 对话框1();
setVisible(true);
} else {
System.out.println("订房失败");
new 对话框2();
setVisible(true);
}
}
}
);
}
public class 对话框1 extends JDialog {
public 对话框1() {
JLabel jb = new JLabel("预定成功");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}
}
public class 对话框2 extends JDialog {
public 对话框2() {
JLabel jb = new JLabel("预定失败");
add(jb);
setVisible(true);
setBounds(500, 500, 200, 150);
}
}
public class 对话框3 extends JDialog {
public 对话框3() {
JLabel jb = new JLabel("换房成功");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}}
public class 对话框4 extends JDialog {
public 对话框4() {
JLabel jb = new JLabel("换房失败");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}
}
public class 对话框5 extends JDialog {
public 对话框5() {
JLabel jb = new JLabel("退房成功");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}}
public class 对话框6 extends JDialog {
public 对话框6() {
JLabel jb = new JLabel("退房失败");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}}
public class 对话框7 extends JDialog {
public 对话框7() {
JLabel jb = new JLabel("查到消息");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}}
public class 对话框8 extends JDialog {
public 对话框8() {
JLabel jb = new JLabel("未查到消息");
add(jb);
setVisible(true);
setBounds(500,500,200,150);
}}
public static void main(String[] args) {
new 文本框监视器();
}}
按照姓名查询房态
按照房号来查询
import java.sql.*;
public class 查房jdbc{
public boolean login(String roomcheck,String namecheck) {
System.out.println(roomcheck);System.out.println(namecheck);
ResultSet rs = null;
PreparedStatement prestat = null;//如果太try中在没执行到connetion给stat赋值则在后期释放资源stat时会报错空指针
Connection conn = null;//同理
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433; DatabaseName=roommanage", "sa", "123");
String sql = "SELECT * from [roommanage].[dbo].[roomcondition1] where roomnum=? or cname=?";
prestat = conn.prepareStatement(sql);
prestat.setString(1,roomcheck);
prestat.setString(2,namecheck);
rs = prestat.executeQuery();
String roomnum;
String name;
String id;
String condition;
while (rs.next())
{
roomnum=rs.getString(1);
name=rs.getString(2);
id=rs.getString(3);
condition=rs.getString(4);
System.out.println("房号-----姓名-----ID-------入住情况");
System.out.println(roomnum+"-----"+name+"-----"+id+"------"+condition);
return true;
}
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
}
finally {
if (rs != null) ;
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (prestat != null) {
try {
prestat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) ;
{
try {
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
return false;
}}
**用prepareStatement用动态sql语句设置参数?
String sql = “SELECT * from [roommanage].[dbo].[roomcondition1] where roomnum=? or cname=?”;
prestat = conn.prepareStatement(sql);
prestat.setString(1,roomcheck);
prestat.setString(2,namecheck);
**
退房界面和代买
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class 退房jdbc {
public boolean login(String droproom) {
System.out.println(droproom);
if (droproom == null ) {
return false;
}
PreparedStatement prestat = null;//如果太try中在没执行到connetion给stat赋值则在后期释放资源stat时会报错空指针
Connection conn = null;//同理
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
int count;
conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433; DatabaseName=roommanage", "sa", "123");
String sql = "delete from [roommanage].[dbo].[roomcondition1] where roomnum=?";
prestat = conn.prepareStatement(sql);
prestat.setString(1,droproom);
count=prestat.executeUpdate();
// prestat.setString(2,id);
if(count>0){
return true;
}
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
}
finally {
if (prestat != null) {
try {
prestat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) ;
{
try {
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
return false;
}
}
换房界面
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class 换房jdbc {
public boolean login(String room,String roomchange) {
System.out.println(room);System.out.println(roomchange);
if (room == null || roomchange == null) {
return false;
}
// ResultSet rs = null;
PreparedStatement prestat = null;//如果太try中在没执行到connetion给stat赋值则在后期释放资源stat时会报错空指针
Connection conn = null;//同理
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
int count;
conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433; DatabaseName=roommanage", "sa", "123");
String sql = "update [roommanage].[dbo].[roomcondition1] set[roomnum] =? where [roomnum]=?";
prestat = conn.prepareStatement(sql);
prestat.setString(1,roomchange);
prestat.setString(2,room);
count=prestat.executeUpdate();
// prestat.setString(2,id);
if(count>0){
return true;
}
纯手码不易。所有模块都粘贴出来了,后期会在GUI界面上添加表格