ibatis不同資料庫主鍵ID生成方式

2021-09-02 03:32:29 字數 594 閱讀 5439

在使用ibatis插入資料進資料庫的時候,會用到一些sequence的資料,有些情況下,在插入完成之後還需要將sequence的值返回,然後才能進行下一步的操作。

使用ibatis的selectkey就可以得到sequence的值,同時也會將值返回。不過對於不同的資料庫有不同的操作方式。

對於oracle:

select seq_user_id.nextval as id from dual

insert into user

(id,name,password)

values

(#id#,#name#,#password#)

該句話執行完之後,傳進來的引數user物件do裡的id欄位就會被賦值成sequence的值。

對於mysql

insert into user

(name,password)

values

(#name#,#password#)

select last_insert_id() as id

將selectkey放在insert之後,通過last_insert_id() 獲得剛插入的自動增長的id的值。

資料庫主鍵ID管理方案

資料庫常常使用自增主鍵。通常會遇到這些問題 當我們在匯入舊資料時常常會發生主鍵重複衝突 資料庫主鍵沒有任何業務意義 常常會出現插入資料前需要獲取資料主鍵的情況,mysql下讓人頭大。生產過程中,常常用一張表以及函式來幫助維護業務表的主鍵。表用來存放業務表序列,函式用來處理並獲取業務表序列。當有業務資...

邏輯資料庫設計 需要ID 談主鍵Id

本文的目標就是要確認那些使用了主鍵,卻混淆了主鍵的本質而造成的一種反模式。每個了解資料庫設計的人都知道,主鍵對於一張表來說是乙個很重要,甚至必需的部分。這確實是事實,主鍵是好的資料庫設計的一部分。主鍵是資料庫確保資料行在整張表唯一性的保障。它是定位到一條記錄並且確保不會重複儲存的邏輯機制。主鍵也同時...

資料庫插入資料返回當前主鍵ID值方法

環境 sql anywhere 9.0.2 建立語句 create table test id int primary key identity 1,1 name varchar 20 當我們插入一條資料的時候,我們很多時候都想立刻獲取當前插入的主鍵值返回以做它用。我們通常的做法有如下幾種 1.先 ...