在使用mybatis做持久层时,insert、update、delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数;

那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取。

针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id">

SELECT SEQ_TEST.NEXTVAL FROM DUAL

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:

<insert id="save" parameterType="user" useGeneratedKeys="true" keyProperty="id">

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">

SELECT LAST_INSERT_ID() AS id

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

在插入操作完成之后,参数user的id属性就已经被赋值了,再在逻辑层利用user.getId()获取就好。

Mybatis insert、update 、delete返回值相关推荐

  1. Mybatis Update操作 返回值修改为受影响条数

    到底 update 返回值代表什么呢?我们来验证一下便知道了,假设有如下一张表以及两条数据: 我们来编写一个简单的单元测试用例来验证下,首先使用 mybatis 简单的写个 mapper 进行更新操作 ...

  2. 【转载】mybaits的update、Insert、delete返回的是不是受影响的行数?

    转自:https://blog.csdn.net/benben683280/article/details/79645697 update操作 返回值 mybatis执行update()方法默认返回为 ...

  3. mybatis配置insert/update/delete同一个模板

    insert,update,delete标签只是一个模板,在操作时是以sql语句为核心的, 即在做增/删/改时,insert/update/delete便签可以通用, 但做查询时只能用 select ...

  4. PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)

    原文: PHP5: mysqli 插入, 查询, 更新和删除  Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...

  5. linux mysql 事务_linux下mysql Insert update delete 事务 用户管理

    linux下mysql Insert update delete  事务 用户管理 1.INSERT插入语句格式: INSERT INTO tb_name (字段1, 字段2, ...) VALUES ...

  6. SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)

    SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MS ...

  7. java通过jdbc访问mysql,update数据返回值的思考

    java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...

  8. mysql删除语句事务_事务用来管理 insert,update,delete 语句

    MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数 ...

  9. 内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec

    元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update ...

  10. Mybatis insert数据时返回主键

    Mybatis insert 时候默认返回行数,想要获取主键,可以在写xml时候添加属性配置,以MySQL为例 keyProperty="id" useGeneratedKeys= ...

最新文章

  1. 微信小程序中的tabBar设置
  2. 【异常】 Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server.
  3. 使用文本文件(.txt)进行数据存取的技巧总结
  4. 【C#程序设计】教学讲义——第三章:C#语言基础
  5. 简明Linux命令行笔记:finger
  6. 虚拟服务器(dmz),dmz虚拟主机(dmz主机和虚拟服务器区别)
  7. web前端篇:html基础知识
  8. zend studio mysql 配置_php 在Zend Framework中配置数据库参数
  9. MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法
  10. 为何python不好找工作-为什么说Python不好找工作?原因在这里!
  11. 我的压缩软件选择:7zip软件+Zip格式
  12. winscp使用教程 linux,WinSCP使用方法教程
  13. 按键精灵手机版 代码收藏
  14. 因果关系发现:推开认知世界的大门
  15. Python实用脚本/算法集合, 附源代码下载
  16. Ubuntu使用git更新本地代码到github
  17. 《数字图像处理》题库5:计算题 ②
  18. OpenCV—python 发票印章去除或分割(图像内容识别预处理)
  19. 访问非法内存 越界等
  20. Docker的原理,详细

热门文章

  1. 【vim小小记】vim的复制粘贴(包括系统剪贴板)
  2. awk命令详解(二)
  3. 大数据学习之Linux服务器常用命令
  4. AUTOCAD——螺旋
  5. 通过加速度计和陀螺仪解算姿态
  6. c语言模拟鼠标键盘控制电脑
  7. CA410_SDK测试及读数软件
  8. 正则表达式的使用(Javaphp),及常用表达式摘抄
  9. 信号检测与估计理论_论文解读 | 利用脑功能连接实现疲劳驾驶检测
  10. 创建esp分区和msr分区是做什么用得