關於useGeneratedKeys的使用

今天認識到一個新參數 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 最終的效果都是同樣的 只是影響範圍不一樣

相關文章
相關標籤/搜索