在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中文网其他相关文章!