我有一個表單,它捕獲用戶在JFormattedTextField中輸入的日期。然後,需要使用PreparedStatement將Date存儲在數據庫(postgresql)中。我在pStat.setDate(4,dob);行有錯誤消息。使用Java中的PreparedStatement在數據庫中插入日期
Date dob = (Date)ftxtDOB.getValue();
String add = txtAddress.getText();
String country = txtCountry.getText();
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/postgres", "postgres","cisco");
pStat = conn.prepareStatement("INSERT INTO customer_info VALUES (?,?,?,?,?,?)");
pStat.setString(1, id);
pStat.setString(2, surname);
pStat.setString(3, fName);
pStat.setDate(4, dob);
}catch(Exception e){
}
編輯:我有編譯器的這個錯誤信息。
no suitable method found for setDate(int,java.util.Date)
method java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar) is not applicable
(actual and formal argument lists differ in length)
method java.sql.PreparedStatement.setDate(int,java.sql.Date) is not applicable
(actual argument java.util.Date cannot be converted to java.sql.Date by method invocation conversion)
編輯:解決了,我用:
pStat.setDate(4, new java.sql.Date(dob.getTime()));
那可能是什麼錯誤信息?你應該真的填寫那個catch子句......至少把e.printStackTrace()放在那裏。 – pcalcao 2012-02-27 17:11:27
而錯誤是?你看過錯誤信息嗎?它應該可以幫助你,而不是一些可以忽略的亂碼。切勿忽略異常。 – 2012-02-27 17:12:02