将特定日期设置为准备好的语句

Posted

技术标签:

【中文标题】将特定日期设置为准备好的语句【英文标题】:Setting a particular date into a prepared statement 【发布时间】:2013-06-20 16:37:10 【问题描述】:

我正在尝试以这种格式将任何给定日期插入到我准备好的语句中(例如 11/08/1989、04/15/1955)

这是我的代码:

pstmnt = conn.prepareStatement("INSERT INTO user_info VALUES (?,?,?,?,?,?)");

pstmnt.setInt(1, max_id);
            pstmnt.setString(2, f_name);
            pstmnt.setString(3, l_name);
            pstmnt.setString(4, email);
            pstmnt.setString(5, username);
            pstmnt.setDate(6, ?);
            pstmnt.addBatch();

鉴于很多 Date 方法已被弃用,我不确定如何实现。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您需要将java.sql.Date 对象传递给setDate() 方法。

pstmt.setDate(6, 
          new java.sql.Date(( new
                 SimpleDateFormat("MM/dd/yyyy").parse("11/08/1989")).getTime()));

【讨论】:

等一下,我认为这是我的错误,我会在几分钟内回复您【参考方案2】:

使用SimpleDateFormat:

pstmt.setDate(6, new java.sql.Date(
    new SimpleDateFormat("MM/dd/yyyy").parse("11/08/1989")));

【讨论】:

编译器报错“不兼容的类型:java.util.Date不能转换成java.sql.Date”

以上是关于将特定日期设置为准备好的语句的主要内容,如果未能解决你的问题,请参考以下文章

插入带有准备好的语句的日期时间[重复]

如何将准备好的语句与 OleDbDataAdapter 一起使用?

准备好的语句以及连接池

将 Oracle upsert 转换为 PostgreSQL 准备好的语句

如何将此代码转换为准备好的语句或 jdbc 中的语句? [关闭]

为准备好的语句创建插入查询