2011-06-03 229 views
2

任何人都可以幫助我如何將我的Java表單連接到我的MySQL數據庫? 我有這個以下代碼,但它沒有工作...連接數據庫

private void saveActionPerformed(java.awt.event.ActionEvent evt) {           

    String value1 = textField1.getText(); 
    String value2 = textField2.getText(); 
    String value3 = textField3.getText(); 
    String value4 = textField4.getText(); 
    Connection con = null; 
    String url = "jdbc:mysql://localhost:3306/Marketing"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String db = "Marketing"; 
    String user = "root"; 
    String pass = ""; 
    System.out.println(value1 + value2 + value3 + value4); 
    try { 
     Class.forName(driver); 
     con = DriverManager.getConnection(url + db, user, pass); 
     PreparedStatement st = con.prepareStatement("insert into clients (idclients, name, address, contact_person, contact_num) values(?,?,?,?,?)"); 
     st.setString(2, value2); 
     st.setString(3, value3); 
     st.setString(4, value4); 
     st.executeUpdate(); 
     JOptionPane.showMessageDialog(jPanel1, "Data is successfully inserted into database."); 
     con.close(); 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(jPanel1, "Error in submitting data!"); 
    } 
}      
+0

你會得到什麼錯誤? – sfat 2011-06-03 09:08:43

+0

「不工作」是什麼樣子?幫助我們幫助你 - 提供一些有價值的信息。我建議您重構該代碼以從Swing中分離SQL。正如所寫,這段代碼不會很有用。 – duffymo 2011-06-03 09:09:29

+0

作爲一個評論...處理事件時打開數據庫連接是非常不好的做法。隔離這段代碼並重用它...查看DAO模式。 – 2011-06-03 09:11:03

回答

1

有問題的連接代碼:

url = jdbc:mysql://localhost:3306/Marketing 
db = Marketing 

url + db = jdbc:mysql://localhost:3306/MarketingMarketing 

在這裏你必須刪除一個額外的營銷

+0

是的我現在已經注意到它的所有建議,它是不正確的代碼,所以我改變了它,但我仍然無法提交我插入的值......它不保存到數據庫。 – 2011-06-06 03:09:54

2

的一個問題,我可以看到馬上就是你的PreparedStatement預計5個參數(1 - 5),但你只設置3! 其次,我不確定爲什麼當你的數據庫URL已經包含數據庫名稱時,你使用DriverManager.getConnection(url + db,...),所以只使用DriverManager.getConnection(url,user,pass)。 儘管如此,如果你能澄清究竟有什麼不起作用,這將是一件好事。

+0

謝謝,我沒有注意到這些參數。我已經更正了它,並且用您的建議更改了DriverManager代碼,但我仍然得到相同的錯誤。我的錯誤是,我無法保存所有的值到數據庫,雖然我成功連接。提交數據時出錯。 – 2011-06-06 02:51:08

1

的錯誤是在此聲明:

con = DriverManager.getConnection(url + db, user, pass); 

getConnection方法連接到數據庫在第一個參數中指定的url上。在這裏,您將名爲urldb的兩個變量組合起來,因此您的連接網址將變爲:jdbc:mysql://localhost:3306/MarketingMarketing這可能不是您想要的。只能使用url而不是url + db

+0

謝謝..我已經改變它,但仍然得到相同的錯誤..「無法提交數據」。我無法提交我插入的值... – 2011-06-06 03:07:05