Mybatis 使用資料庫產生的主鍵

2021-10-01 11:22:27 字數 1290 閱讀 3411

需求分析:

當資料庫的主鍵使用自增主鍵的時候, 希望在通過 mybatis 插入資料後, 能夠獲取到這個由資料庫產生的主鍵.

自增主鍵示例**:

/**

* 使用者實體

*/public class user

/** */

int insert(user user);

}insert into user(

id,username

)values (#,#

)/** * 測試**

*/@test

public void testinsert()

這裡的關鍵配置是 xml 檔案中的:usegeneratedkeys="true" keyproperty="id". 在將 usegeneratedkeys 設定為 true 後, mybatis 會使用 jdbc 的 getgeneratedkeys 方法取出由資料庫內部生成的主鍵. 獲得主鍵值後將其賦值給 keyproperty 配置的 id 屬性. 當需要設定多個屬性時, 使用逗號隔開, 這種情況下還需要設定 keycolumn 屬性, 按順序制定資料庫的列, 這裡的列值和 keypropery 配置的屬性一一對應. 上面的配置適用於支援自增主鍵的資料庫, 如 mysql.

非自增主鍵示例**:

select seq_id.nextval from dual

insert into user(

id,username

)values (#,#

)

這裡 selectkey 的執行順序為 before, 因此它先於 insert 語句執行. 在它執行之後, insert 語句中的 id 就有值了, 這裡必須制定 keycolumn 屬性.

也可以使用 selectkey 來改寫上面 mysql 的**:

insert into user(

username

)values (#)

select last_insert_id()

這裡 selectkey 的 order 屬性為 after, 表示它在 insert 語句執行後執行. 在執行 insert 語句後, 資料庫已經自動產生了乙個 id, 然後通過查詢語句將這個 id 的值查詢出來, 賦值給 id 屬性.

參考:

[1] : mybatis從入門到精通

mybatis資料庫框架

mybatis資料庫框架 sqlmapconfig配置檔案為mybatis的主配置檔案 配置項配置內容 載入所有的對映檔案到主配置檔案中 外掛程式配置 如mybatis的分頁外掛程式的配置 別名配置 別名配置主要是用於mybtis對映實體類的別名設定 事務配置 與spring整合之後,mybatis...

MyBatis資料庫操作總結

1.namespace 1.2.介面寫全稱 2.配置檔案實現介面的步驟 2.1.通過配置select,insert,update,delete節點並拼寫sql語句實現介面 2.2.id 方法名 2.3.parametertype 介面方法的引數型別 如果方法有多個引數,則可以省略 3.複雜引數的介面...

mybatis 多資料庫支援

當應用需要支援不同資料庫產商,並且依賴了不同資料庫特有的函式或者語法時,我們通常需要書寫2套或以上是sql來支援不同的場景。獲取列表 oracle 12c後使用listagg 而mysql使用group concat 其他場景 假設沒有標籤的情況下,我們可以如何實現我們的需求?我們用獲取列表的場景來...