使用Java中的PreparedStatement在数据库中插入日期

时间:2012-02-27 17:09:58

标签: java prepared-statement java.util.date

我有一个表单,用于捕获用户在JFormattedTextField中输入的日期。然后需要使用PreparedStatement将Date存储在数据库(postgresql)中。我在pStat.setDate(4,dob);。

行有错误消息
 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()));

1 个答案:

答案 0 :(得分:6)

什么错误信息?

猜测它实际上是编译器错误消息,您确定使用的是java.sql.Date而不是java.util.Date吗?

编辑:当您编辑问题时,是的,您将需要new java.sql.Date(date.getTime())或其他东西(Java中的数据处理是一团糟!(目前))。