Java - 在本机查询中设置 currentDate 时间?
Java - set currentDate time in Native Query?
我的实体中有以下字段:
@JsonProperty
@Column(name = "updated")
@Temporal(TemporalType.TIMESTAMP)
private Calendar updated;
我有以下本机查询,我试图在上面设置更新日期:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String updatedDate = dateFormat.format(Calendar.getInstance().getTime());
String queryString = "update " + "persons" +
" set updated = " + updatedDate" +
" where person_id = 1";
但我收到一条错误消息 incorrect datetime value
。
如何设置值?在数据库中是datetime
。
如果你真的在做一个原始的 JDBC 更新查询,那么你应该在这里使用一个准备好的语句:
String sql = "UPDATE persons SET updated = ? WHERE person_id = 1";
PreparedStatement ps = conn.prepareStatement(sql);
java.util.Date date = Calendar.getInstance().getTime();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
ps.setDate(1, sqlDate);
int numRowsAffected = ps.executeUpdate();
但您可能要考虑不再使用 Calendar
,因为它已被 Java 8 中的一套新的 date/time 函数所取代。相反,请考虑将 Calendar
与 LocalDateTime
.
尝试使用此查询。我在您最终形成的查询中也看到了一些语法错误。
String queryString = "update " + "persons" +
" set updated = '" + updatedDate + "' " +
" where person_id = 1";
我的实体中有以下字段:
@JsonProperty
@Column(name = "updated")
@Temporal(TemporalType.TIMESTAMP)
private Calendar updated;
我有以下本机查询,我试图在上面设置更新日期:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String updatedDate = dateFormat.format(Calendar.getInstance().getTime());
String queryString = "update " + "persons" +
" set updated = " + updatedDate" +
" where person_id = 1";
但我收到一条错误消息 incorrect datetime value
。
如何设置值?在数据库中是datetime
。
如果你真的在做一个原始的 JDBC 更新查询,那么你应该在这里使用一个准备好的语句:
String sql = "UPDATE persons SET updated = ? WHERE person_id = 1";
PreparedStatement ps = conn.prepareStatement(sql);
java.util.Date date = Calendar.getInstance().getTime();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
ps.setDate(1, sqlDate);
int numRowsAffected = ps.executeUpdate();
但您可能要考虑不再使用 Calendar
,因为它已被 Java 8 中的一套新的 date/time 函数所取代。相反,请考虑将 Calendar
与 LocalDateTime
.
尝试使用此查询。我在您最终形成的查询中也看到了一些语法错误。
String queryString = "update " + "persons" +
" set updated = '" + updatedDate + "' " +
" where person_id = 1";