有關MyBatis中的主鍵設定問題

2021-08-10 22:11:12 字數 1092 閱讀 9963

我們知道在往資料庫插入資料的時候,大多時候會要求資料自動給我們設定乙個唯一的主鍵。

比如mysql中的自增主鍵和uuid()oracle中的sequencesys_guid()都是用來生成唯一主鍵的。

那麼在mybatis中要怎樣來使用相應資料庫中的特性來設定主鍵呢?

下面的例子中,我們使用user(userid,username)來做相應的測試

如何使用mysql等資料庫的自增屬性

我們可以設定usegeneratedkeys="true",然後再把keyproperty設定到目標屬性(userid)上就 ok 了

insert into user(user_name)

values (#)

如何在oracle等不支援自增屬性的資料庫中生成主鍵

oracle資料庫中如何呼叫sequence來設定主鍵呢?

mybatis中提供了selectkey屬性來解決這一問題。

我們只要在插入語句執行之前執行selectkey裡面的語句,將執行結果設定到目標屬性(userid)上就行了。

select sq_user.nextval from dual

insert into user(user_id,user_name)

values (#,#)

當然,上的語句是將sequence的值設定到userid中去,當然我們也可以將uuid()或者sys_guid()獲取的值設定到目標屬性中去。

2017-11-17 11:13 於上海

mybatis主鍵自增設置

做插入資料的時候經常用到插入操作主鍵id使用資料庫自身的生成方式,比如說自增,或者使用序列號,具體配置如下 mysql設定使用自增的主鍵生成策略,並能獲取生成的主鍵值 insert into tb a,b,c values oracle使用序列 select seq.nextval from dua...

mybatis 008 與快取有關的設定

和快取有關的設定 1.cacheenabled value false 關閉二級快取,一級快取一直可用 2.getlist resulttype emp usecache true usecache false 二級快取不使用,一級快取照常使用 3.每個增刪改標籤都有flushcache true ...

access中怎麼設定主鍵?

access中怎麼設定主鍵?如果您有乙個表,其中每條記錄都有乙個唯一的標識號 如 id 號 序列號或編碼 則該字段可以作為乙個不錯的主鍵。要使主鍵正常工作,該欄位必須唯一標識每一行,決不包含空值或 null 值,並且很少 理想情況下永不 改變。要顯式設定主鍵,必須使用設計檢視。單擊 office 按...