[英]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.