基础的实现
//创建PreparedStatementCreator
PreparedStatementCreator creator = new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
//使用原始jdbc完成有个PreparedStatement的组建
PreparedStatement preparedStatement = con.prepareStatement("insert into sys_user values(?,?,?,?,?)", PreparedStatement.RETURN_GENERATED_KEYS);
//设置参数的值
preparedStatement.setObject(1,null);
preparedStatement.setObject(2,user.getUsername());
preparedStatement.setObject(3,user.getEmail());
preparedStatement.setObject(4,user.getPassword());
preparedStatement.setObject(5,user.getPhoneNum());
return preparedStatement;
}
};
//创建keyHolder
GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
template.update(creator,keyHolder);
// String sql = "insert into sys_user values(?,?,?,?,?)";
// template.update(sql, null, user.getUsername(), user.getEmail(), user.getPassword(), user.getPhoneNum());
//获取返回的主键id值
long value = keyHolder.getKey().longValue();
return value;