jdbcTemplate插入MYSQL时怎么返回主键ID

    @Override
    public Integer add(Board board) {
        String sql = "INSERT INTO tz_board(title, description) VALUES(?,?)";
        jdbcTemplate.update(sql, board.getTitle(), board.getDescription());
        Integer boardId = jdbcTemplate.
        return boardId;
    }

不知道我这样写对不对

Integer boardId = jdbcTemplate.

阅读 23.1k
3 个回答
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update( new PreparedStatementCreator(){
                    @Override
                   public PreparedStatement createPreparedStatement(Connection conn) throws SQLException{
                        PreparedStatement ps = conn.prepareStatement(SQL_ADD, new String[] {}); 
                        ps = conn.prepareStatement(YOUR_SQL_SCRIPT, Statement.RETURN_GENERATED_KEYS);
                        ps.setString(1, "TEST");
                        ps.setInt(2, 1);
                        //...

                        return ps;
                    }
                },
                keyHolder);
return keyHolder.getKey().intValue();

Spring提供了一个接口

org.springframework.jdbc.support.KeyHolder

其中有方法

getKey()

方法描述

Retrieve the first map of keys. If there are multiple entries in the list (meaning that multiple rows had keys returned), then an InvalidDataAccessApiUsageException is thrown.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题