在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返回插入的数据主键相关推荐

  1. MyBatis插入数据返回插入对象的主键

    1.美图 方法:在mapper中指定keyProperty属性,示例如下: 主要: useGeneratedKeys="true" keyProperty="userId ...

  2. java 插入数据 主键_JDBC插入数据返回数据主键代码实例

    Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JD ...

  3. 解决mybatisPlus插入数据主键突然很大

    解决mybatisPlus插入数据主键突然很大 1.在管理员窗口进入对应的数据库,然后输入下面的指令: alter table sys_user AUTO_INCREMENT=30; ​sys_use ...

  4. MyBatis的插入后获得主键的方式

    需求: 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法: 在mapper中指定keyProperty属性,示例如下: <insert id=" ...

  5. mybatis获取mysql自增主键_Mybatis获取数据库自增主键

    一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...

  6. MyBatis insert 获取自增主键

    1.建表语句 create table user( id int PRIMARY KEY auto_increment, name varchar(400) ); 2.Maven 依赖 <pro ...

  7. mybatis 返回 插入的主键

    2019独角兽企业重金招聘Python工程师标准>>> 一般返回的是 数据库的 自增的 主键,,, 百度了一通,,我 刚开始 以后 可以 通过 插入的方法的,, 返回值 可以获取到 ...

  8. Mybatis 插入时获取主键的方式

    mybatis 作为一个主流的 ORM 框架,深受广大开发者的喜爱.有人的地方就有江湖,有代码的地方自然有坑,下面来说说获取 mybatis 的插入后返回的主键. 我们可以想一下自动增长的主键特性,在 ...

  9. mybatis返回插入数据的自增长id

    今天测试反馈一个bug,现象是新注册的用户可以看到所有人的报告,老用户没问题,查看日志发现原来查询的时候是新注册的用户的id为null,所以进行了全表有效数据查询. 但是表的主键不允许为空,怎么会出现 ...

最新文章

  1. charles 代理手机连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需...
  2. mysql交互式创建表_用mysql语句创建数据表详细教程
  3. 如何快速将文本中的tab更换成逗号(图文详解)
  4. Spring Boot之程序性能监控
  5. eclipse使用maven tomcat插件部署无法关联源代码
  6. Opencv--bitwise_and、bitwise_not等图像基本运算及掩膜
  7. FPN论文解读(附网络结构层次代码)
  8. npm install全局安装的模块路径自定义管理
  9. 我为什么弃用OpenStack转向CNware
  10. windows对应字体
  11. 聊聊我的2021,总结与展望
  12. mysql基础命令语句以及使用方法:
  13. 2015中南大学夏令营机试(DFS求最短路径、子序列、字符串、贪心、数学找规律)
  14. 【前端大屏可视化项目适配方案】
  15. Android 微信支付加密
  16. Ubuntu20.04下配置Anaconda3+NVIDIA 驱动+Cuda11.1+Cudnn8.0.5
  17. LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED
  18. 考研英语计算机翻译,2019考研英语翻译每日一句:数字化时代
  19. 这些好公司955,不加班,你知道几个
  20. 在Github账户如何修改设置个人头像

热门文章

  1. Dom-Attribute对象
  2. 《android深入探索》第四章心得
  3. NPOI自定义单元格背景颜色
  4. 南方周末:阿里巴巴的大数据梦
  5. Android OpenGL ES 开发教程(24):Depth Buffer
  6. HTML5基本知识小测验
  7. rdlc报表的制作步骤
  8. 【HDU - 4345 】Permutation(DP)
  9. 用PHP实现浏览器点击下载各种格式文档的方法详解【txt apk等等】
  10. 群发的我不回??!!