1. 程式人生 > >mybatis插入資料主鍵自動增長處理

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="