mybatis随机生成可控制主键的方式
mybatis生成的主键,一般都是用数据库的序列,可是还有不同的写法,比如:
一、NUMBER类型的主键
<insert id="insertPeriodical" parameterType="cn.edu.hbcf.plugin.periodical.pojo.PeriodicalType">
<selectKey keyProperty="id" resultType="java.lang.Integer" order="BEFORE">
select nvl(max(ID),0)+1 from PERIODICAL_TYPE
</selectKey>
insert into PERIODICAL_TYPE
(ID, YEAR, PERIODICAL_NO, OPER_USER, OPER_DATE)
values
(#{id},
#{year,jdbcType=CHAR},
#{periodicalNo,jdbcType=INTEGER},
#{operUser,jdbcType=VARCHAR},
#{operDate,jdbcType=DATE})
</insert>
重点是:select nvl(max(ID),0)+1 from PERIODICAL_TYPE
二、VARCHAR类型的主键
<insert id="insertSmsRdSort" parameterType="SmsRdSort">
<selectKey resultType="java.lang.String" keyProperty="sortId" order="BEFORE">
select sys_guid() from dual
</selectKey>
insert into SMS_RD_SORT(SORT_ID,SORT_NAME,SORT_REMARK,TYPE_ID,UPDATE_USER,UPDATE_TIME,SORT_INDEX)
values(#{sortId},#{sortName,jdbcType=VARCHAR},#{sortRemark,jdbcType=VARCHAR},#{typeId,jdbcType=VARCHAR},#{updateUser},#{updateTime,jdbcType=TIMESTAMP},#{sortIndex,jdbcType=VARCHAR})
</insert>
重点是:select sys_guid() from dual
mybatis随机生成可控制主键的方式的更多相关文章
- MyBatis对不同数据库的主键生成策略
本文转自:http://289972458.iteye.com/blog/1001851 http://hi.baidu.com/zim_it/blog/item/8a2bd11205f5b56ec ...
- MyBatis :Insert (返回主键、批量插入)
一.前言 数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二.insert元素 属性详解 其属性如下: parameterType , ...
- mybatis mysql 批量insert 返回主键
Mybatis在插入单条数据的时候有两种方式返回自增主键: mybatis3.3.1支持批量插入后返回主键ID, 首先对于支持自增主键的数据库:useGenerateKeys和keyProper ...
- MyBatis 插入记录同时获取主键
MyBatis 插入记录同时获取主键 MyBatis 插入记录同时获取主键的系统界面 useGeneratedKeys 属性 keyProperty 属性 keyColumn 属性 selectKey ...
- 根据oracle的主键列生成SQLserver的主键
根据oracle的主键列生成MsSQLServer的主键列 select 'alter table ' || cu.table_name ||' add constraint '||' PK_' ...
- mybatis添加记录时返回主键id
参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个 ...
- (转)MyBatis+MySQL 返回插入的主键ID
MyBatis+MySQL 返回插入的主键ID 需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如 ...
- [Done]SnowFlake生成Long类型主键返回前台过长导致精度缺失的问题
问题描述: 在开发过程中,项目的主键生成器是SnowFlake,其生成的long主键是28位, 但是js中Long的最大值:https://blog.csdn.net/sunmerZeal/artic ...
- 2017.9.15 mybatis批量插入后实现主键回填
参考来自:mybatis mysql 批量insert 返回主键 注意:必须要在mybatis3.3.1及其以上才能实现. 1.service List branchEntryList = (Arra ...
随机推荐
- 【BZOJ-2809】dispatching派遣 Splay + 启发式合并
2809: [Apio2012]dispatching Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2334 Solved: 1192[Submi ...
- 【bzoj1037】 ZJOI2008—生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 (题目链接) 题意 有n个boy和m个girl排成一排,求使得任意一段的boy个数girl个数 ...
- .net String.Format数字格式化输出
内容转载自:http://www.cnblogs.com/lqb/archive/2008/08/04/1259498.html 前面内容这个做的总结的很全,今后有新增的我继续往后补充.请留意我增加的 ...
- groovy–流程控制
在本篇文章中,我们将介绍逻辑分支,循环,以及如何从if-else以及try-catch代码块中返回值. if – elseGroovy 支持Java传统的if-else语法: def x = fals ...
- android:sharedUserId 获取系统权限
最近在做的项目,有好大一部分都用到这个权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等等,刚开始的时候,直接添加权限,运行就报错,无论模拟器还是真机,在logcat中总会得 ...
- get_magic_quotes_gpc函数
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...
- android源代码提示文本框还能输入多少个字符
public class TestAndroidActivity extends Activity { /** Called when the activity is first created. * ...
- WPF TabControl 模拟动画
using System; using System.Threading; using System.Windows; using System.Windows.Controls; using Wan ...
- linux基本命令(2)-备份压缩命令
一.tar命令 .解压文件 .tar.gz -C /opt (解压到/opt下) / /opt/tomcat (建立链接文件) 二.zip命令 // 1.把/home目录下面的mydata目录压缩为m ...
- Linux常用命令 查看进程信息时 copy的-----温故而知新
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c 列出程序时,显示每个程序真正的 ...