gpt4 book ai didi

java - 使用准备好的语句返回时间戳

转载 作者:行者123 更新时间:2023-11-29 03:07:35 25 4
gpt4 key购买 nike

我有一个自动生成的时间戳,每次在 mysql 表中插入或更新记录时都会创建该时间戳。有没有办法以类似于我使用 key 持有者返回新创建的 ID 的方式返回此时间戳?

KeyHolder keyHolder = new GeneratedKeyHolder();
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//Insert Contact
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement preparedStatement = connection.prepareStatement(SQL_ADD, Statement.RETURN_GENERATED_KEYS);
preparedStatement.setString(1, contact.getFirstName());
preparedStatement.setString(2, contact.getLastName());
preparedStatement.setInt(3, contact.getOrganizationId());
preparedStatement.setString(4, contact.getType());
preparedStatement.setInt(5, contact.getUserId());
return preparedStatement;
}
}, keyHolder);
//Use keyholder to obtain newly created id
contact.setId(keyHolder.getKey().intValue());

有没有什么方法可以在不重新查询表的情况下也返回新的时间戳?我一直在寻找方法将它连同 id 作为 key 在 key 持有者中返回,但它似乎没有作为 key 返回?

最佳答案

不太令人满意,但我认为“否”是您问题的答案。我不知道任何 Spring 的东西,但我认为这是由于它包装的基本 JDBC。参见 http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29

您唯一的选择是在 MySQL 上创建一个具有 out 参数的存储过程并调用它。参见 http://dev.mysql.com/doc/refman/5.0/en/call.html .

关于java - 使用准备好的语句返回时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com