keyProperty(仅对insert和update有用)此属性的作用是将插入或更新操作时的返回值赋值给PO类的某个属性,通常会设置为主键对应的属性。如果需要设置联合主键,可以在多个值之间用逗号隔开。

useGeneratedKeys(仅对insert和update有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键,如MySQL和SQLServer等自动递增的字段,其默认值为false。

当使用的数据库不支持主键自动增长(如Oracle),或者支持增长的数据库取消了主键自增的规则时,也可用MyBatis提供的另一种方式来自定义生成主键,具体配置实例如下。

<insert id="insertClass" parameterType="xx.xx.xx"><selectKey keyProperty="id" resultType="Integer" order="BEFORE">select if(max(id) is null, 1, max(id) +1) as newId from tableName</selectKey>insert into tableNme (id,attribute1,attribute2,attribute3)values(#{id},#{value1},#{value2},#{value3},)
</insert>

order的属性可以被设置为BEFORE或AFTER。如果设置为BEFORE,那么它会首先执行元素中的配置来设置主键,然后执行插入语句;如果设置为AFTER,那么它会首先执行执行插入语句,然后执行元素中的配置内容;

keyColumn(仅对insert和update有用)此属性用于设置第几列是主键,当主键不是表中的第一列时需要设置。在需要联合主键时,值可以用逗号隔开。
————————————————
版权声明:本文为CSDN博主「年轻人999」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43465706/article/details/104594032

keyProperty、useGeneratedKeys和keyColumn相关推荐

  1. 六、MyBatis教程之六注解使用详解

    MyBatis支持注解的使用,可以在接口中直接使用注解进行SQL的操作. 1.@Insert 编写insert语句,实现数据的新增 2.@Update 编写update语句,实现数据修改 3.@Del ...

  2. Mybatis之useGeneratedKeys和selectKey的基本用法与区别

    一.useGeneratedKeys 数据库本身具备主键自动增长的功能,才能使用useGeneratedKeys oracle不支持true <insert id="insert&qu ...

  3. springboot添加多数据源连接池并配置Mybatis

    springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018  ...

  4. Mybatis教程-实战看这一篇就够了

    推荐SpringCloud教程:https://blog.csdn.net/hellozpc/article/details/83692496 推荐Guava Cache教程:https://blog ...

  5. mybatis中的MapperAnnotationBuilder

    在MapperRegistry.addMapper时会用到MapperAnnotationBuilder. public <T> void addMapper(Class<T> ...

  6. Mybatis原理初探

    开篇略谈 谈到Mybatis,对于我们猿们来说是熟悉不过了.但是有没有兴趣去探一下其实现原理呢?是的,请往下看 ↓  come on... Mybatis综述 Mybatis一个数据持久层轻量级框架, ...

  7. 实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺

    文章目录 概述 增加商铺 ShopDao新增insertShop接口 ShopDao.xml中新增insertShop语句 单元测试 更新商铺 ShopDao中新增updateShop接口 ShopD ...

  8. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法

    当我们使用eclipse编写Mybatis或hibernate的xml文件时,面对众多标签的配置文件,却没有自动提醒,对于工作和学习都十分不方便. 之所以没有自动提醒,是因为dtd文件没有加载成功. ...

  9. 12-多对一添加操作(添加新客户及对应的新订单)

    多对一添加操作 场景:现在想要添加一个新客户对应一个新订单,那么要怎么来添加呢? 分析:由于添加订单时,客户对订单是一对多的关系,所以添加订单的时候必须要指明一位客户. 要同时添加新客户以及一个新订单 ...

最新文章

  1. 《C++语义和性能分析》读书笔记
  2. 收藏!超全机器学习资料合集!(附下载)
  3. Windows Azure Virtual Machine (34) Azure VM挂载WebDAV
  4. optee中的密码学算法注册模型
  5. 开源:分享10 个让你笑的合不拢嘴的 GitHub 项目!
  6. kafka入门介绍(转载)
  7. vim复制、删除和粘贴一行
  8. Silverlight 异步单元测试
  9. c语言程序设计基础1千克,c语言学习知识编程经典编辑题汇总整编.doc
  10. python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
  11. 接口测试--apipost参数定位
  12. XML Schema 配置文件自动生成c#类设计案例子
  13. boost.asio mysql_boost asio学习笔记
  14. db模块未绑定 Uncaught TypeError: Cannot read property 'openDatabase' of undefined
  15. 所有编程语言为我作证,随机数骗局大揭秘,随机数都是骗人的!
  16. 3.25期货每日早盘操作建议
  17. python人机猜拳随机,python实现人机猜拳小游戏
  18. 老徐WEB:CSS伪类和伪元素详解
  19. Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection
  20. Python表白:你值你值得拥有,找不到对象你来找我,这也太秀了叭

热门文章

  1. 如何方便的建立远程链接服务器
  2. 你是通过什么渠道获取一般人不知道的知识和信息的?
  3. 雨流计数法Matlab代码
  4. 数据加解密时Base64异常:Illegal base64 character 3f
  5. 运筹系列65:TSP问题的精确求解法概述
  6. 用计算机设置变大的命令按钮 vb,2017年9月计算机二级考试VB考试题
  7. 简易计算机android教程视频,制作视频,你也可以!——小白视频编辑制作简易教程...
  8. 如何用计算机算精馏塔理论板,精馏理论塔板计算软件
  9. ADC 转换:神舟IV实验
  10. 湖北助理工程师职称评审基本问题解答(人力资源和社会保障局)