今天認識到一個新參數 useGeneratedKeys 再這裏我記錄分享一下數據庫
在咱們進行兩表關聯的時候,添加表1Specification 表2Specification_optionmybatis
表一:spa
表二:code
他們經過關鍵關聯 在咱們進行添加時:blog
在咱們添加表一的數據時後 表二須要經過表一的id來進行查詢添加 可是咱們獲取不了表一的id
ci
(雖然數據庫中有自增的主鍵,可是咱們的實體類中沒有獲取到添加的id)io
這時候咱們就須要useGeneratedKeysclass
他有什麼做用呢?配置
在mybatis的配置文件中,有個叫keyProperty和useGeneratedKeys的屬性。useGeneratedKeys 參數只針對 insert 語句生效,默認爲 false。當設置爲 true 時,表示若是插入的表以自增列爲主鍵,則容許 JDBC 支持自動生成主鍵,並可將自動生成的主鍵返回。
im
因此 咱們只須要在mybatis的配置文件中添加這個參數就能夠了
<insert id="insertSelective" parameterType="com.ujiuye.pojo.specification.Specification" useGeneratedKeys="true" keyProperty="id" > insert into tb_specification
這樣 咱們就能直接獲取主鍵的id了
另外有幾點補充:
useGeneratedKeys參數只針對 insert 語句生效,默認爲 false;
有三處地方能夠配置useGeneratedKeys 最終的效果都是同樣的 只是影響範圍不一樣