有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

sql Java是否在本机查询中设置currentDate时间?

我的实体中有以下字段:

@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


共 (1) 个答案

  1. # 1 楼答案

    如果您真的在执行原始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();
    
    <>但是您可能想考虑使用^ {CD1>}迁移,因为它已经被java 8中的一组新的日期/时间函数所取代。相反,考虑用^ {< CD3}}替换^ {CD1> }。