0
我已经创建了一个基于图形用户界面的酒店管理系统在java netbeans中与Ms Access数据库连接。在数据库中,我有一个名为“RoomInfo”的表。在java中使用插入查询在ms数据库中插入数据Netbeans
我有两个名为Room和AddRoom的类。房间类包含房间的所有属性和添加新房间到数据库的添加方法。 AddRoom类具有前端表单,用户可以在JTextFields中输入房间类属性的值。
当我尝试在数据库中添加新房间时,我从AddRoom类的Room类中调用add_room方法。问题是,当我使用gettext方法从JTextFields中获取文本时,它不会从JTextFields读取文本。我在add_room函数中有一条if语句,如果任何字段留空,则显示消息“没有字段可以留空”。每当我尝试添加新房间时,都会弹出“没有任何字段可以留空”的消息。
需要帮助来识别问题。
房类
public class Room {
String roomno;
String reserved;
String category;
String airconditioned;
String bedtype;
String rent;
Connection con;
PreparedStatement ps;
ResultSet rs;
AddRoom adr = new AddRoom();
public Room()
{
roomno = "";
reserved = "";
category = "";
airconditioned = "";
bedtype = "";
rent = "";
make_connection();
}
public void make_connection()
{
try{
String driver = "net.ucanaccess.jdbc.UcanaccessDriver";
Class.forName(driver);
String login = "jdbc:ucanaccess://C:\\MsDatabase\\EmployeeDB.accdb";
con = DriverManager.getConnection(login);
}catch(Exception ex){ System.out.println(ex);}
}
public void add_room()
{
try{
if("".equals(adr.get_jtextfield1().getText())||"".equals(adr.get_jtextfield2().getText())||
"".equals(adr.get_jtextfield3().getText())||"".equals(adr.get_jtextfield4().getText())||
"".equals(adr.get_jtextfield5().getText())||"".equals(adr.get_jtextfield6().getText()))
{
JOptionPane.showMessageDialog(null, "None of the fields can be left empty");
}
else
{
roomno = adr.get_jtextfield1().getText();
reserved = adr.get_jtextfield2().getText();
category = adr.get_jtextfield3().getText();
airconditioned = adr.get_jtextfield4().getText();
bedtype = adr.get_jtextfield5().getText();
rent = adr.get_jtextfield6().getText();
String sql = "INSERT INTO RoomInfo(RoomNumber,Reserved,RoomCategory,AirConditioned,BedType,RentPerDay)"
+ "VALUES(?,?,?,?,?,?)";
ps = con.prepareStatement(sql);
ps.setInt(1, new Integer(roomno));
ps.setString(2, reserved);
ps.setString(3, category);
ps.setString(4, airconditioned);
ps.setString(5, bedtype);
ps.setInt(6, new Integer(rent));
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Room Added Successfully");
}
}catch(Exception ex){
JOptionPane.showMessageDialog(null, "Input in Room Number and "
+ "Rent Per Day should be a number");
}
}
}
AddRoom类
public class AddRoom extends javax.swing.JFrame {
public AddRoom() {
initComponents();
make_connection();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Room objr = new Room();
objr.add_room();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
AdminHome admh = new AdminHome();
admh.setVisible(true);
dispose();
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new AddRoom().setVisible(true);
}
});
}
public JTextField get_jtextfield1()
{
return jTextField1;
}
public JTextField get_jtextfield2()
{
return jTextField2;
}
public JTextField get_jtextfield3()
{
return jTextField3;
}
public JTextField get_jtextfield4()
{
return jTextField4;
}
public JTextField get_jtextfield5()
{
return jTextField5;
}
public JTextField get_jtextfield6()
{
return jTextField6;
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
// End of variables declaration
}
明白了!谢谢 ... – Yousaf