2016-08-21 107 views
-2

我在按鈕動作製作的數據庫內部使用它,甚至連接了數據庫,但信息不在數據庫的表內。無法在Netbeans中使用JDBC在MySQL數據庫中插入數據

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    PreparedStatement ps = null; 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhoast:3306//a","root","root"); 
     Statement smt = conn.createStatement(); 
     ps = conn.prepareStatement("insert into aone values (?,?,?)"); 

     String n = name.getText(); 
     String a = age.getText(); 
     String r = roll.getText(); 

     ps.setString(1,n); 
     ps.setString(2,a); 
     ps.setString(3,r); 

     int i = ps.executeUpdate(); 

     if (i>0) { 
      JOptionPane.showMessageDialog(null, "data is saved"); 
     } 
     else { 
      JOptionPane.showMessageDialog(null, "error"); 
     }   
    } 

    catch(Exception e) { 

    } 
}        
+0

你怎麼確定它是不是在分貝。更具體一些,並提出具體問題。 –

回答

1

在catch塊中打印堆棧跟蹤。 JVM可能會拋出異常,但您永遠不會以這種方式知道它。

當你這樣做時,我相信你會被告知JDBC無法連接到「localhoast」。

我懷疑「localhoast」是否正確;嘗試「localhost」。

有這麼多問題,此代碼:

  1. 不應該混在一起的用戶界面和數據庫的代碼。
  2. 不應該與每個請求獲得JDBC連接;使用游泳池。
  3. 代碼不分層;很難測試。
  4. 您不關閉方法範圍中的任何JDBC資源。

試試這樣說:

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) { 
     Connection conn = null; 
     PreparedStatement ps = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn =   DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","root"); 
      ps = conn.prepareStatement("insert into aone values (?,?,?)"); 

      String n = name.getText(); 
      String a = age.getText(); 
      String r = roll.getText(); 

      ps.setString(1,n); 
      ps.setString(2,a); 
      ps.setString(3,r); 

      int i = ps.executeUpdate(); 

      if (i > 0) { 
       JOptionPane.showMessageDialog(null, "data is saved"); 
      } else { 
       JOptionPane.showMessageDialog(null, "error"); 
      }   
     } catch(Exception e) { 
      e.printStackTrace(); 
     } finally { 
      close(ps); // You need to implement this 
      close(conn); // You need to implement this 
     } 
    } 
+0

最重要的是,數據庫名稱'a'位於兩個正斜槓'/'的後面,這將不起作用 - 連接字符串錯誤! –

+0

我看到的斜槓是正確的。他們編輯? – duffymo

+0

對不起,我的意思是OP的問題! –

相關問題