How can I get the autoincremented id when I insert a record in a table via jdbctemplate

后端 未结 3 1884
我寻月下人不归
我寻月下人不归 2020-12-15 23:16
private void insertIntoMyTable (Myclass m) {
    String query = \"INSERT INTO MYTABLE (NAME) VALUES (?)\";
    jdbcTemplate.update(query, m.getName());
}
         


        
3条回答
  •  有刺的猬
    2020-12-15 23:18

    I get id generated by database (MSSQL) after insert like below, imports:

      import org.springframework.jdbc.core.BeanPropertyRowMapper;
      import org.springframework.jdbc.core.JdbcTemplate;
      import org.springframework.jdbc.core.RowMapper;
      import org.springframework.jdbc.core.SqlParameter;
      import org.springframework.jdbc.core.SqlReturnResultSet;
      import org.springframework.jdbc.core.simple.SimpleJdbcCall;
    

    and the code snippet:

        final String INSERT_SQL = "INSERT INTO [table]\n"
                + " ([column_1]\n"
                + " ,[column_2])\n"
                + " VALUES\n" +
                " (?, ?)";
    
        Connection connection = jdbcTemplate.getDataSource().getConnection();
        PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INVOICE_SQL, Statement.RETURN_GENERATED_KEYS);
        preparedStatement.setString(1, "test 1");
        preparedStatement.setString(2, "test 2");
    
        preparedStatement.executeUpdate();
        ResultSet keys = preparedStatement.getGeneratedKeys();
    
        if (keys.next()) {
            Integer generatedId = keys.getInt(1); //id returned after insert execution
        } 
    

提交回复
热议问题