Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBCtemplate:获取插入的数据';自动生成的密钥_Java_Jdbctemplate - Fatal编程技术网

Java JDBCtemplate:获取插入的数据';自动生成的密钥

Java JDBCtemplate:获取插入的数据';自动生成的密钥,java,jdbctemplate,Java,Jdbctemplate,我想知道,如何使用jdbctemplate获取插入数据的Id?我可以用Php来做这件事,但我不知道如何用java来做。 我搜索了文档并找到了executeAndReturnKey(..),但我的jdbctemplate无法识别此类(仅.execute()) 请。帮助我,例如 SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource) .with

我想知道,如何使用jdbctemplate获取插入数据的Id?我可以用Php来做这件事,但我不知道如何用java来做。
我搜索了文档并找到了executeAndReturnKey(..),但我的jdbctemplate无法识别此类(仅.execute())

请。帮助我,例如

SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)  
                                    .withTableName("EMPLOYEE")  
                                    .usingGeneratedKeyColumns("ID");  


Number id = simpleJdbcInsert.executeAndReturnKey(parameters);  
System.out.println("Generated id - " + id.longValue());  
比如说,

SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)  
                                    .withTableName("EMPLOYEE")  
                                    .usingGeneratedKeyColumns("ID");  


Number id = simpleJdbcInsert.executeAndReturnKey(parameters);  
System.out.println("Generated id - " + id.longValue());  
您可以与
JdbcTemplate
一起使用

KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
    @Override
    public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
        PreparedStatement statement = connection.prepareStatement("Your Insert/Update Query", Statement.RETURN_GENERATED_KEYS);
        // set values in query
        return statement;
    }
}, generatedKeyHolder);

Number id = generatedKeyHolder.getKey();
// Use this Number to get id with feasible type long, int etc.
// For example,
// int myId = id.intValue();
您可以与
JdbcTemplate
一起使用

KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
    @Override
    public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
        PreparedStatement statement = connection.prepareStatement("Your Insert/Update Query", Statement.RETURN_GENERATED_KEYS);
        // set values in query
        return statement;
    }
}, generatedKeyHolder);

Number id = generatedKeyHolder.getKey();
// Use this Number to get id with feasible type long, int etc.
// For example,
// int myId = id.intValue();

您能否用示例详细说明一下。您是否使用
Spring
JdbcTemplate
?“但是我的JdbcTemplate无法识别此类(仅.execute())”。这是正确的
JdbcTemplate
没有executeAndReturnKey()方法。该方法位于
SimpleJdbcInsert
类中。看看这个,你能不能用例子详细说明一下。你在使用
Spring
JdbcTemplate
?“但是我的JdbcTemplate不识别这个类(仅.execute())”。这是正确的
JdbcTemplate
没有executeAndReturnKey()方法。该方法位于
SimpleJdbcInsert
类中。看看这个