当JDBCTemplate需要返回参数时

使用场景: 当调用JDBCTemplate的提供的方法不能完成业务需求的时候 比如不能使用update后带返回值
可以实现createPreparedStatement的方式 使用原始的jdbc完成一个PreparedStatement的组建
代码如下:

PreparedStatementCreator creator = new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
                //使用原始的jdbc完成一个PreparedStatement的组建
                String sql = "insert into sys_user values(null,?,?,?,?)";
                PreparedStatement preparedStatement = connection.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
                preparedStatement.setObject(1,user.getUsername());
                preparedStatement.setObject(2,user.getEmail());
                preparedStatement.setObject(3,user.getPassword());
                preparedStatement.setObject(4,user.getPhoneNum());
                return  preparedStatement;
            }
        };
        //创建keyHolder
        GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
        jdbcTemplate.update(creator,keyHolder);
        //获取生成的主键
        long userId = keyHolder.getKey().longValue();

        return userId;
上一篇:SpringBoot中JdbcTemplate和事务的实现(配置类 不用xml文件)


下一篇:使用Spring中的JdbcTemplate从一个数据库中查询的数据添加到另一个数据库中,实现数据交换功能