考虑此查询:
insert (a, b, update_time) values (1, 1, now() - interval 10 second)
现在,我需要将其转换为参数化语句:
insert (a, b, update_time) values (?, ?, ?)
问题是你不能在参数中使用SQL函数。我该如何编写这种代码?
答案 0 :(得分:2)
Date now = new Date();
PreparedStatement ps = connection.prepareStatement("INSERT INTO your_table(a, b, update_time) VALUES(?, ?, ?)");
ps.setObject(1, a);
ps.setObject(2, b);
ps.setDate(3, now);
ps.executeUpdate();
答案 1 :(得分:1)
无需参数化日期代码:
insert (a, b, update_time) values (?, ?, now() - interval 10 second)
现在它只需要两个参数,日期将在服务器上处理。我在JDBC和MySQL之间有关于夏令时的时区问题。小心!