在 Spring 3.0.5 中,我们可以通过 JdbcTemplate 来插入数据并获取 MySQL 表中的自增主键。下面是一个示例代码:
public int addWsstxContent(final WsstxContent wsstxContent) {
final String sql = "insert into wsstx_content(sstx_type, sstx_content, sstx_title, opr_time, ts_tag) values(?, ?, ?, now(), ?)";
KeyHolder keyHolder = new GeneratedKeyHolder();
this.jdbcTemplate.update(new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setInt(1, wsstxContent.getSstxType());
ps.setString(2, wsstxContent.getSstxContent());
ps.setString(3, wsstxContent.getSstxTitle());
ps.setString(4, wsstxContent.getTsTag());
return ps;
}
}, keyHolder);
int generatedId = keyHolder.getKey().intValue();
return generatedId;
}
在这段代码中,我们首先定义了一个 SQL 插入语句,并使用 JdbcTemplate 的 update
方法来执行该语句。为了获取自增主键,我们使用了 GeneratedKeyHolder
类,并在创建 PreparedStatement
时指定了 Statement.RETURN_GENERATED_KEYS
参数。最后,通过 keyHolder.getKey().intValue()
获取到生成的主键值。