MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
来源:互联网 发布:卷皮7.0源码 编辑:程序博客网 时间:2024/06/07 12:44
MyBatis自动生成的主键很多数据库支持自动生成主键的数据类型。不过这通常(并不总是)是个私有的特性。SQL Map 通过<insert>的子元素<selectKey>来支持自动生成的键值。它同时支持预生成(如Oracle)和后生成两种类型(如 MS-SQL Server MySQL)。
一、Oracle设置
<insert id="saveUserInfo" parameterType="UserInfo"> <selectKey resultType="int" keyProperty="userId" order="BEFORE"> <![CDATA[SELECT SEQ_COMMON.NEXTVAL AS ID FROM DUAL]]> </selectKey> <![CDATA[insert into userinfo(userId,userName,phone,age,birthday,remark) values(#{userId},#{userName},#{phone},#{age},#{birthday},#{remark})]]> </insert>
注意:
1、MyBatis3已使用resultType ,resultClass是会报错的!
2、order="BEFORE" 上,这个必须要写明,生成序列在之前。在ibatis中使用type="pro" ,但在MyBatis3中必须使用order否则报错!
3、selectKey中的 keyProperty 要和 insert into中的 插入的参数 要一致 keyProperty="userId" 如: insert into userinfo (userId) VALUES (#{userId})
注意以上三点就OK了。
二、mysql设置
<insert id="saveUserInfo" parameterType="UserInfo" useGeneratedKeys="true" keyProperty="id"> insert into userinfo(userName,phone,age,birthday,remark) values(#{userName},#{phone},#{age},#{birthday},#{remark}) </insert>
mysql就简单了!
三、MS-SQL配置(本人没有测试过!)
<!-- Microsoft SQL Server IDENTITY Column 改进--> <insertid="insertProduct-MS-SQL"parameterClass="com.domain.Product"> <selectKeyresultClass="int"keyProperty="id"> <![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values(#description#) SELECT SCOPE_IDENTITY() AS ID ]]> </selectKey> </insert>
原文:http://www.cnblogs.com/yuanermen/archive/2013/04/02/2995920.html
0 0
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- iBATIS自动生成主键(oracle,sqlserver,mysql)
- iBATIS自动生成主键(oracle,sqlserver,mysql)
- 获得MySQL数据库自动生成的主键
- 获得MySQL数据库自动生成的主键(六)
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle,sqlite 主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增 长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle,sqlite 主键自动增长的设置
- Oracle, Mysql,SqlServer主键自动增长的设置
- 不错的SQL题目
- orace1关于数据库的几个概念
- 通过OnTouchEvent(Motionevent event)判断手指滑动方向
- jedis分布式之 ShardedJedisPool (一致性Hash分片算法)
- matlab左除与右除的区别
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- 批处理删除文件/复制文件
- 集成C3P0连接池后控制台狂抛com.mchange.v2.c3p0.SQLWarnings错误解决方案
- UBIFS文件系统分析六之wear-leveling
- android自定义控件(一)
- 用 python绘图及网络分析(win64下matplotlib,networkx安装方法)
- DiskFileItemFactory类
- python 绑定进程在某个cpu上执行 affinity
- 趣味编程,有谁研究过这方面吗?