mybatis插入資料主鍵自動增長處理
1.如果資料庫支援自動增長,如mysql和sqlserver,那麼可以設定useGeneratedKeys="true",而且設定keyProperty到你已經做好的目標屬性上
例如:上面的表中已經對id進行了自動生成的列型別,那麼語句可以修改為
<inserrt id="insertauthor" parameterType="domain.....author"
userGeneratedKeys="true" keyProperty="id">
插入語句,與id無關
</insert>
2.若果資料庫不支援自動增長,有另一種方法處理資料庫不支援自動生成型別
<insert ................>
<selectKey keyProperty="id" resulttype="int" order="before">
select CAST(RANDOM()*1000 AS INTEGER) a from SYSIBM.SYSDUMMY1
</selectKey>
insert into author
</insert>
以上為通過選擇一個隨機的整數作為id,來傳入引數 ,sql中需要包含id
在以上的示例中,selectKey將會被首先執行,id位置先被設定,然後插入語句會被呼叫
<selectKey keyProperty="id" resultType="int" order="BEFORE" statementType="PREPARED">
</selectKey>
相關推薦
mybatis插入資料主鍵自動增長處理
1.如果資料庫支援自動增長,如mysql和sqlserver,那麼可以設定useGeneratedKeys="true",而且設定keyProperty到你已經做好的目標屬性上 例如:上面的表中已經對id進行了自動生成的列型別,那麼語句可以修改為 <inserrt
mybatis+mysql/oracle 資料庫批量插入,主鍵自增長
1 mybatis+oracle <!-- https://mvnrepository.com/artifact/com.oracle/ojdbc6 --> <dependency> <groupId>com.oracle&
一開始 一直不明白,主鍵自動增長sqlite裡面是如何插入的
後來發現,只要不寫這個欄位,或者這個欄位插入的是NULL就行。注意:是NULL,不是字串,也不是物件。 不管程式碼中有沒有是否為空的限制,只要在用navicat 開啟的時候,沒有 notnull的限
SQLite設定主鍵自動增長及插入語法
SQLite中,一個自增長欄位定義為INTEGER PRIMARY KEY AUTOINCREMENT,那麼在插入一個新資料時,只需要將這個欄位的值指定為NULL,即可由引擎自動設定其值,引擎會設定為最大的rowid+1。如果表為空,那麼將會插入1。 比如,有一張表ID
獲取主鍵自動增長ID(Oracle/MSSQL/mysql),取得剛插入的ID編號
iBatis的SQLMap配置檔案的selectKey元素有個type屬性,可以指定pre或者post表示前生成(pre)還是後生成(post)。 Oracle設定 1<!-- Oracle SEQUENCE -->2<insert id="insertProduct-ORACLE" pa
Mybatis插入操作 主鍵自增 返回成功 但是資料庫沒有資料
如果插入的操作返回成功,但是資料庫沒有資料,一般情況下是因為事務。 下面我們來大概分析下MyBatis。 在MyBatis的配置檔案中: <environments default="devel
mybatis插入返回主鍵
pan pri generate ron ret val art start cti useGeneratedKeys="true" keyProperty="id" <insert id="insertReturnPrimaryKey" parameterType
mybatis+oracle實現主鍵自增長的幾種方式
1、使用selectKey標籤 <insert id="addLoginLog" parameterType="map" > <selectKey keyProperty="id" resultType="int" order="BEFORE"> se
Navicat操作Oracle、JPA註解實現Oracle插入資料 主鍵ID自增
首先在Oracle表中實現ID自增,其次在JPA中實現。 Oracle資料庫不存在主鍵自增選項,現在想實現ID自增。 部落格連結:oracle 實現插入自增列 開啟Navicat,定位到自己建立的表。 一、 建立序列 其他-序列&
Mybatis插入獲取主鍵的兩種方式
方法一: 用於主鍵自增的資料庫(mysql),這種方式oracle無法使用(因為沒有主鍵自增) <!--新增一個新的使用者--> <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
Oracle實現主鍵自動增長
我們都知道,在MySQL中,要實現主鍵的自動遞增非常簡單.只需要在主鍵定義的後面加上auto_increment即可, 但是在Oracle中就不是這樣,需要分幾步來完成 1.建立一個表,這個就不多說了,如果這個都不會,,相信我,回頭是岸啊~ create table 戶口本
sybase 主鍵自動增長
CREATE TABLE peng_user( userId int identity, userName varchar(10) NULL, password varchar(10) NULL, comment varchar(10) NULL,
MyBatis+Oracle實現主鍵自增長的幾種常用方式
在最近做專案中,SSM框架+Oracle資料庫,遇到前臺沒有傳遞主鍵值,需要在插入資料的時候實現主鍵自增長,因為oracle沒有如同SqlServer和mysql一樣的主鍵自增長的設計,所以只能迂迴實
mybaits 配置insert 主鍵自動增長失效原因
初次涉獵mybaits 框架和mysql 資料庫導致框架使用出現很多的低階失誤,在此分享給大家避免此類錯誤: 配置檔案 <insert id="insertUser1" parameterType="domain.User" useGenerated
Oracle用觸發器實現插入資料主鍵自增
一篇:首先,你要有一張表!CREATE TABLE example(ID Number(4) NOT NULL PRIMARY KEY,NAME VARCHAR(25),PHONE VARCHAR(10),ADDRESS VARCHAR(50));然後,你需要一個自定義的se
Hibernate annotation 怎麼設定主鍵自動增長?
需要在主鍵上增加一個@Id標識 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public int getId() { return id; } Genera
Mysql,SqlServer,Oracle主鍵自動增長的設定
1、把主鍵定義為自動增長識別符號型別 MySql 在mysql中,如果把表的主鍵設為auto_increment型別,資料庫就會自動為主鍵賦值。例如: create table customers(id int auto_increment primary key not
Mybatis——【親測】mybatis使用註解方式插入資料後獲取自增長的主鍵值
自己踩過的坑,查了好久,終於發現解決方法。 步驟有三: 1. 寫SQL,但不要自己插入主鍵值 2. 配置@Options(useGeneratedKeys=true, keyProperty="物
mybatis 插入資料返回主鍵id寫法
1、batis檔案中寫法: <!--插入資料,返回主鍵的insert寫法 --> <insert id="insert_A" parameterType="Map" useGeneratedKeys="t
mybatis插入資料時返回自增的主鍵
mybatis有一個方便的功能就是在插入資料後返回插入的記錄主鍵,設定非常方便,一共有兩種方式,推薦使用第一種 第一種: <insert id="createBook" parameterType="book" useGeneratedKeys="true" keyProperty="