框架学习系列 mybatis 第七篇 mybatis入门程序之插入数据库后返回主键
来源:互联网 发布:java声明银行账户类锁 编辑:程序博客网 时间:2024/06/06 03:32
本节主要内容
1:自增主键返回(主讲)
2:uuid类型主键返回
3:主键返回值序列(oracle的)
4:延伸-自增长主键怎么返回当前id的下一个?
5:总结&下节预告
本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第7篇 mybatis入门程序之插入数据库后返回主键
声明:本文系凯哥原创。转载请注明出处
一:自增主键返回(主讲)
1.1:未插入前先查询数据库,当前最大的主键id是多少:
可以看到是28
1.2:先看mapper.xml文件修改
1.3:测试代码:
1.4:查看sql日志:
我们可以看到最新插入数据的id是29.说明已经返回最新插入数据的id
1.5:详细分析
说明:
selectKey:查询主键,在标签内需要输入查询主键的sql
keyProperty:主键对应的列表(对象属性名)。在本案例中就是id
resultType:返回主键的类型。本案例是自增长型的int类型
order:指定擦还行主键的sql和insert语句的执行顺序,相对于insert语句来说的。
我们是获取插入后的主键id,所以order的值就是after
LAST_INSERT_ID:该函数是mysql的函数,获取自增主键的id.该函数必须配合
inster语句一起使用。否则无效
mapper.xml具体代码:
<!-- 全字段插入数据,带有返回主键的 -->
<insert id="insertUser" parameterType="com.kaigejava.mybatis.pojo.User">
<!-- selectKey:查询主键,在标签内需要输入查询主键的sql -->
<!-- order:指定查询主键的sql和insert语句的执行顺序,相当于insert语句来说 -->
<!-- LAST_INSERT_ID:该函数是mysql的函数,获取自增主键的ID,它必须配合insert语句一起使用 -->
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO USER (username,birthday,sex,address)
VALUES(#{username},#{birthday},#{sex},#{address})
</insert>
二:uuid类型主键返回
直接上图
说明:
resultType:uuid是String类型的。所以这里是uuid的
order:除了自增类型的以外,其他的都是before的
UUID():mysql函数的
注意:
使用uuid作为主键的时候,id必须要显示插入
三:主键返回值序列(oracle的)
说明:
如果是Oracle数据库的时候,UUID作为主键就不能使用UUID()这个函数了。需要使用
seq.nextval from dual 这个语句。
四:延伸-自增长主键怎么返回当前id的下一个?
先看执行结果:
在看mapper.xml文件:
不做过多解释。
五:总结&下节预告
通过本节学习我们需要掌握的:
1:不同类型的主键,怎么返回?
2:自增类型主键id的两种返回方式
入门程序小结
l #{}和${}
#{}表示占位符?,#{}接收简单类型的参数时,里面的名称可以任意
${}表示拼接符,${}接收简单类型的参数时,里面的名称必须是value
${}里面的值会原样输出,不加解析(如果该参数值是字符串,有不会添加引号)
${}存在sql注入的风险,但是有些场景下必须使用,比如排序后面会动态传入排序的列名
l parameterType和resultType
parameterType指定输入参数的java类型,parameterType只有一个,也就是说入参只有一个。
resultType指定输出结果的java类型(是单条记录的java类型)
l selectOne和selectList
selectOne查询单个对象
selectList查询集合对象
- 框架学习系列 mybatis 第七篇 mybatis入门程序之插入数据库后返回主键
- 框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1
- mybatis插入后返回主键
- mybatis插入后主键返回
- 框架学习系列 mybatis 第三篇 mybatis入门程序之工程项目的搭建
- 框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1
- Mybatis插入完成后返回主键
- Mybatis+MySQL插入数据后返回主键
- Mybatis 插入数据后返回主键值
- mybatis 插入返回主键
- Java MyBatis 插入数据库返回主键
- Java MyBatis 插入数据库返回主键
- Mybatis插入一条数据后返回刚插入数据主键
- Mybatis批量插入返回插入成功后的主键id
- Mybatis批量插入返回插入成功后的主键id
- 框架学习系列 mybatis 第五篇 mybatis入门程序之需求开发2根据用户名模糊查询
- Java MyBatis 插入数据库返回主键 总返回行数
- mybatis之主键返回
- WebRTC实时通信系列教程5 RTCPeerConnection传输视频
- 深机笔记
- shell范例
- 高级指针话题
- 写MFC程序还是先注释写注册表或者先清理注册表吧!
- 框架学习系列 mybatis 第七篇 mybatis入门程序之插入数据库后返回主键
- 数据结构--散列
- 记一次JavaScript Ajax取到后台Json无法使用的问题
- MySQL-MongoDB开源监控利器之PMM
- MongoDB使用小结:一些不常见的经验分享
- 解决AndroidStudio编译异常DefaultAndroidProject : Unsupported major.minor version 52.0
- Arcgis---画线
- 平衡二叉树(AVL树)
- ubuntu14 安装qq记录