Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 Spring MVC在插入记录后检索数据库自动为记录生成的PrimaryKey_Java_Mysql_Spring Mvc_Jdbctemplate - Fatal编程技术网

Java Spring MVC在插入记录后检索数据库自动为记录生成的PrimaryKey

Java Spring MVC在插入记录后检索数据库自动为记录生成的PrimaryKey,java,mysql,spring-mvc,jdbctemplate,Java,Mysql,Spring Mvc,Jdbctemplate,我正在使用JdbcTemplate。我想做的是在数据库中插入一条记录,但是表的主键设置为自动递增,因此我不必插入值,一旦完成插入,我如何检索id?。有没有一种简单的方法可以做到这一点,或者我需要做另一个查询来选择它 Jdbc插入示例 这里的公民ID是自动生成的 public void saveCitizen(Citizens citizen) { logger.debug("In saveCitizens"); int count = getJdbcTemplate().up

我正在使用JdbcTemplate。我想做的是在数据库中插入一条记录,但是表的主键设置为自动递增,因此我不必插入值,一旦完成插入,我如何检索id?。有没有一种简单的方法可以做到这一点,或者我需要做另一个查询来选择它

Jdbc插入示例

这里的公民ID是自动生成的

 public void saveCitizen(Citizens citizen) {
 logger.debug("In saveCitizens");       

int count = getJdbcTemplate().update("INSERT INTO crimetrack.tblcitizens (citizenId,fName,lName,oName,photo,countryId,addLn1, addLn2, addLn3,"
                                                +"genderId,ethnicityId, skinColorId, eyeColorId,hairColorId,occupationId,"
                                                +"phoneNo, maritalStatusId, noticableFeatures,weight,height,citizenTypeId,dob)"
                                                + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
, new Object[]{citizen.getfName(),citizen.getlName(),citizen.getoName(),
                                                citizen.getPhoto(),citizen.getCountryId(),citizen.getAddLn1(),
                                                citizen.getAddLn2(),citizen.getAddLn3(),citizen.getGenderId(),
                                                citizen.getEthnicityId(),citizen.getSkinColorId(),citizen.getEyeColorId(),
                                                citizen.getHairColorId(),citizen.getOccupationId(),citizen.getPhoneNo(),
                                                citizen.getMaritalStatusId(),citizen.getNoticeableFeatures(),
                                                citizen.getWeight(),citizen.getHeight(),citizen.getCitizenTypeId(),
                                                citizen.getDob()});

 logger.info(count +" Rows affected in tblCitizens");

请参见12.2.8:检索自动生成的密钥:


参见12.2.8:检索自动生成的密钥:


只要给出示例代码,以防链接断开。请看:

final String INSERT_SQL = "insert into my_test (name) values(?)";
final String name = "Rob";

KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
    new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps =
                connection.prepareStatement(INSERT_SQL, new String[] {"id"});
            ps.setString(1, name);
            return ps;
        }
    },
    keyHolder);

// keyHolder.getKey() now contains the generated key

只要给出示例代码,以防链接断开。请看:

final String INSERT_SQL = "insert into my_test (name) values(?)";
final String name = "Rob";

KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
    new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps =
                connection.prepareStatement(INSERT_SQL, new String[] {"id"});
            ps.setString(1, name);
            return ps;
        }
    },
    keyHolder);

// keyHolder.getKey() now contains the generated key

你能帮我看看这个吗你能帮我看看这个吗你能帮我解决这个问题吗