mybatis插入数据主键自动增长处理
2016-06-06 23:27
253 查看
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>
例如:上面的表中已经对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>
相关文章推荐
- 【转】linux configure报错configure: error: C++ preprocessor “/lib/cpp” fails sanity 的解决办法
- [Java][activiti]同步或者重构activiti identify用户数据的方法
- dpkg:处理 xxx (--configure)时出错解决办法
- 事物隔离
- 大数据Java基础第十五天作业
- iOS多线程编程(一)——RunLoop基本概念
- 空间正交和向量投影
- Android中关于线性布局基线对齐
- JAVA:监控按钮的两种方法
- linux网络编程之-----基础理论篇
- mysql查询优化
- 数据结构学习整理
- sed简单使用(五)选择性删除
- try catch finally
- 开源大数据查询分析引擎现状
- 接口和抽象类
- viewpage相邻两页叠加错误问题
- sql server中常见的数据类型
- SQL中as的用法
- 【Effective Java】3.单例