首页 >Java >java教程 >如何在准备语句中正确使用 setDate() 和 setTimestamp() ?

如何在准备语句中正确使用 setDate() 和 setTimestamp() ?

DDD
DDD原创
2024-12-04 11:23:11985浏览

How to Correctly Use `setDate()` and `setTimestamp()` in Prepared Statements?

在PreparedStatement中使用setDate

为了遵守编码标准,您的任务是更新代码以利用准备好的语句并绑定变量而不是硬编码 SQL 变量。但是,您在 setDate() 方法方面遇到了问题。

要解决此问题,应遵循以下准则:

使用 java.sql.Date

;

如果您的桌子有日期column:

  • java.lang.String:
    使用 java.sql.Date.valueOf(java.lang.String) 方法,在 " 中提供一个字符串yyyy-[m]m-[d]d" format.
  • java.util.Date:
    如果您有 java.util.Date 变量 endDate,请使用 ps.setDate(2, new java.sql.Date(endDate.getTime()));.
  • 当前:
    要插入当前日期,请使用 ps.setDate(2, new java.sql.日期(System.currentTimeMillis()));或 ps.setDate(2, java.sql.Date.valueOf(java.time.LocalDate.now())); (Java 8 及更高版本)。

使用 java.sql.Timestamp

对于 TIMESTAMP 或 DATETIME columns:

  • java.lang.String:
    使用 java.sql.Timestamp.valueOf(java.lang.String) 方法以及“yyyy-”中的时间戳[m]m-[d]d hh:mm:ss[.f...]" format.
  • java.util.Date:
    使用 ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()) 转换 java.util.Date 变量);.
  • 当前:
    使用以下命令获取当前时间戳ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));或 ps.setTimestamp(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now())); (Java 8 及更高版本)。

以上是如何在准备语句中正确使用 setDate() 和 setTimestamp() ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn