【MyBatis】——自增主键与非自增主键返回
来源:互联网 发布:昆明理工大学教育网络 编辑:程序博客网 时间:2024/06/08 06:49
mysql自增主键,执行insert提交之前自动生成一个自增主键。当时一直没有想为什么要返回主键,也就是返回就返回了吧,总是有用的,确实,返回来有可能会作为下一次查询的依据,或者下一个插入的外键的凭证,总之,先返回来再说……
实现思想是酱紫的:通过mysql函数获取到刚插入记录的自增主键:LAST_INSERT_ID(),但是是在insert之后调用此函数。
在mybatis中,只有添加用户会涉及到返回主键,这里会有两种主键,一种是int型在数据库设置为自增,一种是uuid的形式。
- <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
- <!-- 将插入数据的主键返回,返回到user对象中
- SELECT LAST_INSERT_ID():得到刚insert进去记录的主键值,只适用于自增主键
- keyProperty:将查询到主键值设置到parameterType指定的对象的那个
- resultType:指定SELECT LAST_INSERT_ID()的结果类型
- -->
- <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
- SELECT LAST_INSERT_ID()
- </selectKey>
- insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address});
- </insert>
自增主键方式执行过程是首先将记录插入数据库,前提是数据库已经设置了id是自动递增的,之后通过mysql函数得到刚insert进去记录的主键。
而另外一种方式uuid的形式是与自增逐渐的执行过程是相反的,它的执行过程是:首先通过uuid()得到主键,然后将主键设置到user对象的id属性中,之后在insert执行时,再从user对象中取出id属性值。
- <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
- <!--
- 使用mysql的uuid()生成主键
- 执行过程:首先通过uuid()得到主键,将主键设置到user对象的id属性中
- 其次,在insert执行时,从user对象中取出id属性值
- -->
- <selectKey keyProperty="id" order="AFTER" resultType="java.lang.String">
- SELECT uuid()
- </selectKey>
- insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address});
- </insert>
这种方式就是所谓的非自增主键返回,需要修改表中id的字段类型为string
二者除了执行过程相反之外,还有一点不同就是:自增主键中的insert sql语句主键自动生成,在insert语句中不需要写id字段,在非自增主键时,insert语句需要写id字段。
在mysql中是这样实现的,那么在oracle中使用不同的函数和order标识,如下:
- <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
- <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
- SELECT 序列名.nextval()
- </selectKey>
- insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})
- </insert>
阅读全文
0 0
- 【MyBatis】——自增主键与非自增主键返回
- 【MyBatis】——自增主键与非自增主键返回
- 【MyBatis】——自增主键与非自增主键返回
- Mybatis自增主键返回与非自增主键返回
- mybatis自增主键返回值
- Mybatis批量插入返回自增主键
- mybatis插入时返回自增主键
- Mybatis批量插入返回自增主键
- Mybatis + mysql 返回自增主键
- mybatis mysql自增主键返回
- Mybatis添加功能时获取mysql自增主键和非自增主键的返回值
- hibernate 非主键自增
- mybatis自增主键配置
- mybatis 自增主键配置
- mybatis自增主键配置
- mybatis 自增主键配置
- mybatis 自增主键配置
- mybatis自增主键配置
- 一种新的移动APP保持登陆的实现机制介绍
- ubuntu中apt和dpkg命令总结
- easyui $.extend 正则扩展验证,js文件不能引入的问题
- Recycleview相关注意点
- linux的ar命令: 目标文件(.o)<===> 静态库(.a)
- 【MyBatis】——自增主键与非自增主键返回
- 李兴平,世界站长第一人
- vuex入门
- 图文详解YUV420数据格式
- 单例模式
- 2710-输出菱形
- jQuery Mobile学习笔记(九)——实例
- ubuntu下7zip压缩解压缩命令使用
- 消息队列选型[首选Kafka](备选:RabbitMQ/NSQ/RocketMQ/disque/Kafka)