簡體   English   中英

Spring MVC檢索數據庫自動生成的主鍵以在INSERT記錄后進行記錄

[英]Spring MVC Retrieving Database Autogenerated PrimaryKey For Record After INSERT Record

我正在使用JdbcTemplate。 我想做的是將記錄插入數據庫,但是表的主鍵設置為自動遞增,因此我不必插入值,完成插入后如何檢索ID? 有沒有一種簡單的方法可以執行此操作,或者我需要執行另一個查詢才能選擇它?

Jdbc插入的示例

這里的citizenId是自動生成的

 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");

只要提供示例代碼,以防鏈接斷開。 看見:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM