我們在進行表的記錄的insert 的操作之後。有這樣的需求會需要得到insert 那條記錄的主鍵id。並且該表的主鍵id是主鍵自增的。
如果使用MySQL的max函數是不可以的。因爲此時在多個用戶的情況下。數據表中其他用戶也插入了數據。所以數據可能是不準確的。
上次筆者在純的jdbc的情況下可以拿到該主鍵自增的id。spring的jdbctemplate只是對jdbc做了一個封裝。也是可以做到的。而且代碼簡化地更加厲害。
下面演示下代碼的片段。
KeyHolder keyHolder = new GeneratedKeyHolder();
PreparedStatementCreator preparedStatementCreator = con -> {
PreparedStatement ps = con.prepareStatement("INSERT INTO order_worker_quote_detail (work_quote_id, item_id, quantity, remarks) VALUES ('1','2','120','測試費用名')", Statement.RETURN_GENERATED_KEYS);
return ps;
};
jdbcTemplate.update(preparedStatementCreator, keyHolder);
System.out.println("看下能否拿到最終的自增的id-------------->" + keyHolder.getKey().longValue());