很久没有在正式项目用Spring JdbcTemplate 来做测试了,看了一个别人的项目,用的是Spring 的JdbcTemplate 访问数据库。
具体Java代码如下:
public class UserDaoImpl implements UserDao { @Autowired private JdbcTemplate jdbcTemplate; public User createUser(final User user) { final String sql = "insert into sys_user(organization_id, username, password, salt, locked) values(?,?,?,?,?,?)"; GeneratedKeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection connection) throws SQLException { PreparedStatement psst = connection.prepareStatement(sql, new String[]{"id"}); int count = 1; psst.setLong(count++, user.getOrganizationId()); psst.setString(count++, user.getUsername()); psst.setString(count++, user.getPassword()); psst.setString(count++, user.getSalt()); psst.setBoolean(count++, user.getLocked()); return psst; } }, keyHolder); user.setId(keyHolder.getKey().longValue()); return user; } 比对参数发现只有5个字段,结果values却需要6个,因为有6个?只需要去掉一个'?'即可。