2016-11-21 15 views
0

私はMs Accessデータベースに接続されたjava netbeansでGUIベースのHotel Management Systemを作成しました。データベースでは、私は "RoomInfo"という名前のテーブルがあります。java Netbeansで挿入クエリを使用してmsデータベースにデータを挿入

私はRoomとAddRoomの2つのクラスを持っています。ルームクラスには、ルームのすべての属性と、データベースに新しいルームを追加するaddメソッドが含まれています。 AddRoomクラスにはフロントエンドフォームがあり、ユーザーはルームクラスの属性の値をJTextFieldsに入力します。

データベースに新しい部屋を追加しようとすると、私はAddRoomクラスのRoomクラスのadd_roomメソッドを呼び出します。問題は、私がJTextFieldsからテキストを取得するためにgettextメソッドを使用すると、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     
} 

答えて

1

問題はこれです:

AddRoom adr = new AddRoom(); 

これは、メインウィンドウとは別の新しいAddRoomを作成します。 最も簡単な解決策は、パラメータとして渡すことです。だから、その行を削除し、AddRoomに続いて

public void add_room(AddRoom addr) 

public void add_room() 

を変更:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    Room objr = new Room(); 
    objr.add_room(this); 
} 
+0

それを手に入れました!ありがとう... – Yousaf

関連する問題