MyBatis返回插入的数据主键
在MyBatis开发过程中,我们经常需要解决一个问题:当插入一条数据的时候,我在接下来的操作中我需要知道刚刚插入的是哪条数据,这样我们需要获取插入数据的主键;如何在MyBatis中解决这个问题呢?
首先,我这里有两张表,其中计算层数表和计算参数表有这一对多的关系,层次编号在计算层数表中为主键在计算参数表中为主键,我现在做的操作是,先向计算层数表中插入一条记录:
calLayer = new CalLayer();calLayer.setCalOrder(Integer.parseInt(str[3*i]));calLayer.setPrjid(1);int typeId = findTypeIdByName(typeName);calLayer.setCalTypeid(typeId);calLayerMapper.insert(calLayer);
其中CalLayer类为计算层数表所对应的实体类。
然后在紧接的操作中我需要向计算参数表中插入数据。并且需要保证这两次操作的层次编号保持相同。这时,我们需要对CalLayer类所对应的xxxMapper.xml文件进行修改:
将这里红色的部分去掉,红色部分作用是查询出对应的数据库中主键最大值。
然后在<insert>标签中加入useGeneratedKeys="true" keyProperty="layerid"者两个属性即可。
<insert id="insert" useGeneratedKeys="true" keyProperty="layerid" parameterType="cn.caculate.model.CalLayer" >insert into cal_layer (layerId, prjid, cal_order, cal_typeid)values (#{layerid,jdbcType=INTEGER}, #{prjid,jdbcType=INTEGER}, #{calOrder,jdbcType=INTEGER}, #{calTypeid,jdbcType=INTEGER})</insert>
现在,我们就可以像计算参数表进行添加数据了。
layerParms = new LayerParms();
layerParms.setLayerid(calLayer.getLayerid());
其中:calLayer即为上面创建的CalLayer对象。
calLayer.getLayerid()即获得上面插入语句calLayerMapper.insert(calLayer)数据的主键。
还有其他方法的伙伴们,欢迎共享。
MyBatis返回插入的数据主键相关推荐
- MyBatis插入数据返回插入对象的主键
1.美图 方法:在mapper中指定keyProperty属性,示例如下: 主要: useGeneratedKeys="true" keyProperty="userId ...
- java 插入数据 主键_JDBC插入数据返回数据主键代码实例
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JD ...
- 解决mybatisPlus插入数据主键突然很大
解决mybatisPlus插入数据主键突然很大 1.在管理员窗口进入对应的数据库,然后输入下面的指令: alter table sys_user AUTO_INCREMENT=30; sys_use ...
- MyBatis的插入后获得主键的方式
需求: 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法: 在mapper中指定keyProperty属性,示例如下: <insert id=" ...
- mybatis获取mysql自增主键_Mybatis获取数据库自增主键
一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...
- MyBatis insert 获取自增主键
1.建表语句 create table user( id int PRIMARY KEY auto_increment, name varchar(400) ); 2.Maven 依赖 <pro ...
- mybatis 返回 插入的主键
2019独角兽企业重金招聘Python工程师标准>>> 一般返回的是 数据库的 自增的 主键,,, 百度了一通,,我 刚开始 以后 可以 通过 插入的方法的,, 返回值 可以获取到 ...
- Mybatis 插入时获取主键的方式
mybatis 作为一个主流的 ORM 框架,深受广大开发者的喜爱.有人的地方就有江湖,有代码的地方自然有坑,下面来说说获取 mybatis 的插入后返回的主键. 我们可以想一下自动增长的主键特性,在 ...
- mybatis返回插入数据的自增长id
今天测试反馈一个bug,现象是新注册的用户可以看到所有人的报告,老用户没问题,查看日志发现原来查询的时候是新注册的用户的id为null,所以进行了全表有效数据查询. 但是表的主键不允许为空,怎么会出现 ...
最新文章
- charles 代理手机连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需...
- mysql交互式创建表_用mysql语句创建数据表详细教程
- 如何快速将文本中的tab更换成逗号(图文详解)
- Spring Boot之程序性能监控
- eclipse使用maven tomcat插件部署无法关联源代码
- Opencv--bitwise_and、bitwise_not等图像基本运算及掩膜
- FPN论文解读(附网络结构层次代码)
- npm install全局安装的模块路径自定义管理
- 我为什么弃用OpenStack转向CNware
- windows对应字体
- 聊聊我的2021,总结与展望
- mysql基础命令语句以及使用方法:
- 2015中南大学夏令营机试(DFS求最短路径、子序列、字符串、贪心、数学找规律)
- 【前端大屏可视化项目适配方案】
- Android 微信支付加密
- Ubuntu20.04下配置Anaconda3+NVIDIA 驱动+Cuda11.1+Cudnn8.0.5
- LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED
- 考研英语计算机翻译,2019考研英语翻译每日一句:数字化时代
- 这些好公司955,不加班,你知道几个
- 在Github账户如何修改设置个人头像