📄 tablechange.java
字号:
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class TableChange {
String username = "root";
String password = "right";
String jdbcDriver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/resturant";
Connection con = null;
Statement stmt = null;
JTable jTable=new JTable();
JScrollPane jScroll;
Vector vector;
AbstractTableModel tm;
String title[]={"预定号码","人数","日期","时间","桌号","姓名","到达时间"};
ResultSet rSet=null;
JButton jButton1=new JButton("餐桌调换");
JButton jButton2=new JButton("刷新");
JButton jButton3=new JButton("退出");
JFrame f=new JFrame();
Container contentPane=f.getContentPane();
public TableChange(){
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
contentPane.add(jButton1);
contentPane.add(jButton2);
contentPane.add(jButton3);
display();
f.setSize(465,400);
f.setVisible(true);
jButton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
tablechange();
}
});
jButton2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
reserch();
}
});
jButton3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
f.dispose();
}
});
reserch();
}//
void reserch(){
try{
Class.forName(jdbcDriver);
}
catch(ClassNotFoundException se){
System.err.print(se.getMessage());
}
try{
con=DriverManager.getConnection(url,username,password);
stmt=con.createStatement();
String All="SELECT * FROM reservation;";
rSet=stmt.executeQuery(All);
vector.removeAllElements();
while(rSet.next()){
Vector rec_vector=new Vector();
rec_vector.addElement(String.valueOf(rSet.getString("oid")));
rec_vector.addElement(String.valueOf(rSet.getString("covers")));
rec_vector.addElement(String.valueOf(rSet.getString("date")));
rec_vector.addElement(String.valueOf(rSet.getString("time")));
rec_vector.addElement(String.valueOf(rSet.getString("table_id")));
rec_vector.addElement(String.valueOf(rSet.getString("custom_id")));
rec_vector.addElement(String.valueOf(rSet.getString("arrivetime")));
vector.addElement(rec_vector);
}
tm.fireTableStructureChanged(); //更新表格
rSet.close();
con.close();
}
catch(SQLException se){
System.err.println(se.getMessage());
}
finally{
try{
if(con!=null){
con.close();
}
if(stmt!=null){
stmt.close();
}
}catch(Exception ex){} //忽略
}
}
void display(){
vector=new Vector();
tm=new AbstractTableModel(){
public int getColumnCount(){ //行
return title.length;
}
public int getRowCount(){ //列
return vector.size();
}
public Object getValueAt(int row,int column){ //取得单元格的属性值
if(!vector.isEmpty()){
return ((Vector)vector.elementAt(row)).elementAt(column);
}
else{
return null;
}
}
public void setValueAt(Object value,int row,int column){ //数据模型不可编辑,方法设置为空
}
public String getColumnName(int column){ //区列名
return title[column];
}
public Class getColimnClass(int c){
return getValueAt(0,c).getClass(); //取得列所属对象类
}
public boolean isCellEditable(int row,int column){ //设置单元格不可编辑
return false;
}
};
jTable=new JTable(tm);
jTable.setToolTipText("DISPLAY"); //设置提示
jTable.setAutoResizeMode(jTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); //设置表格调整尺寸模式
jTable.setCellSelectionEnabled(false); //设置单元格的选择方式
jTable.setShowHorizontalLines(true); //是否有分割线
jTable.setShowVerticalLines(true);
jTable.setBounds(6, 20, 500, 400);
jScroll=new JScrollPane(jTable);
jScroll.setBounds(6, 20, 250, 800);
contentPane.add(jScroll);
}
void tablechange(){
String inputValue = JOptionPane.showInputDialog("请输入调换餐桌之前的预约号码!");
if(inputValue.equals("")){
JOptionPane.showMessageDialog(null, "预约号码不能为空!", "错误!", JOptionPane.ERROR_MESSAGE);
}
else{
int oid=Integer.parseInt(inputValue);
String tno = JOptionPane.showInputDialog("请输入想要调换到的餐桌号!");
int tno1=Integer.parseInt(tno);
if(tno1<0||tno1>5){
JOptionPane.showMessageDialog(null, "错误的餐桌号!", "错误!", JOptionPane.ERROR_MESSAGE);
f.dispose();
}
String reserch1="SELECT * FROM reservation where oid="+oid+";";
String reserch2="SELECT time FROM reservation where oid="+oid+";";
String change="update reservation set table_id="+"\""+tno+"\""+"where oid="+oid+";";
try{
Class.forName(jdbcDriver);
}
catch(ClassNotFoundException se){
System.err.print(se.getMessage());
}
try{
con=DriverManager.getConnection(url,username,password);
stmt=con.createStatement();
rSet=stmt.executeQuery(reserch1);
if(rSet.next()==false){
JOptionPane.showMessageDialog(null, "没有预约号码为"+inputValue+"的预约", "错误!", JOptionPane.ERROR_MESSAGE);
f.dispose();
}
rSet=stmt.executeQuery(reserch2);
String a=null;
while(rSet.next()){
a=rSet.getString("time");
}
System.out.println(a);
String reserch3="SELECT * FROM reservation where time="+"\""+a+"\""+"and table_id="+"\""+tno+"\""+";";
rSet=stmt.executeQuery(reserch3);
if(rSet.next()==true){
JOptionPane.showMessageDialog(null, "时间冲突", "错误!", JOptionPane.ERROR_MESSAGE);
f.dispose();
}
else {
stmt.execute(change);
jTable.updateUI();
}
}
catch(SQLException se){
System.err.println(se.getMessage());
f.dispose();
}
finally{
try{
if(con!=null){
con.close();
}
if(stmt!=null){
stmt.close();
}
}catch(Exception ex){f.dispose();}
}
}
}
}//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -