-
mybatis insert 返回自增主键的实现示例
mybatis 在新增之后怎么也获取不到自增主键,本文主要介绍了mybatis insert 返回自增主键的实现示例,具有一定的参考价值,感兴趣的可以了解一下
需求
mybatis 在新增之后怎么也获取不到自增主键,通过不段的摸索原来是姿势不对,记录一下希望能帮助下一位采坑的同学
方式一
映射方式
<-- xml 映射的方式 -->
<insert id="insert" parameterType="com.kebi.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO user (
username, password
) VALUES (
#{username}, #{password}
)
</insert>
属性 | 描述 |
---|---|
useGeneratedKeys | 为 true 则返回主键的值 |
keyProperty | 实体类中属性名 |
keyColumn | 数据库主键字段名 如果和实体属性名一样可以不用写 |
private UsertMapper userMapper;
User user = new User();
user.setUserName("name");
user.setPassWord("123")
userMapper.insert(user);
System.out.println("获取自增主键:"+ user.getId());
方式二
selectKey 的方式
<-- xml 映射的方式 -->
<insert id="INSERT" parameterType="com.kebi.User">
<selectKey resultType="int" order="AFTER" keyProperty="id" keyColumn="id">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO users (
username, password
) VALUES (
#{username}, #{password}
)
</insert>
属性 | 描述 |
---|---|
resultType | 结果类型 |
keyProperty | 实体类中属性名 |
keyColumn | 数据库主键字段名 |
order | 这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素 - 这和像 Oracle 的数据库相似,在插入语句内部可能有嵌入索引调用。 |
statementType | MyBatis 支持 STATEMENT、PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型 |
到此这篇关于mybatis insert 返回自增主键的实现示例的文章就介绍到这了,更多相关mybatis insert 返回自增主键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持 |
原文链接:https://blog.csdn.net/qq_37924396/article/details/124931670
最新更新
SpringBoot高并发下控制限流的几种实现方法
mybatis insert 返回自增主键的实现示例
SpringBoot实现发送验证码功能(图片验证码
springboot中redis操作Hash踩坑解决
详解如何有效地处理Java中的多线程
Mybatis的Cursor避免OOM异常的方法详解
Java服务如何调用系统指令、Bat脚本记录
SpringBoot 下在 yml 中的 logging 日志配置
SpringSecurity中的Filter Chain(过滤器链)
在MyBatis中使用接口映射的步骤详解
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比