1. mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bitqian.dao.OrdersMapper"><insert id="insertOrders" parameterType="cn.bitqian.entity.Orders" ><!-- 返回新增后的主键值 --><selectKey keyProperty="orderId" resultType="java.lang.Integer" keyColumn="order_id" order="AFTER">SELECT LAST_INSERT_ID()</selectKey>insert into orders values (null, #{orderTime}, #{orderMoney}, #{uid})</insert></mapper>
  1. entity
package cn.bitqian.entity;import java.util.Date;/*** @author echo lovely* @date 2020年11月11日 上午11:30:40*/public class Orders {private Integer orderId;private Date orderTime;private double orderMoney;private int uid;// setter/getter/toString
}
  1. dao接口
package cn.bitqian.dao;import cn.bitqian.entity.Orders;/*** 新增orders*/
public interface OrdersMapper {int insertOrders(Orders orders);}
  1. test
   @Testpublic void test2() {SqlSession sqlSession = null;try {// 加载mybatis核心配置文件InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");// 获得session工厂SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 通过session工厂获得sessionsqlSession = sqlSessionFactory.openSession(true);Orders orders = new Orders();orders.setOrderMoney(22);orders.setOrderTime(new Date());orders.setUid(1);OrdersMapper ordersMapper = sqlSession.getMapper(OrdersMapper.class);int count = ordersMapper.insertOrders(orders);System.out.println("受影响行数: " + count);// 主键值会自动装在对象里面System.out.println("新增数据后的主键值:" + orders.getOrderId());} catch (Exception e) {System.out.println(e);} finally {if (sqlSession != null) {sqlSession.close();}}}


  1. Oracle/sqlserver
    insert结点里面套
<!-- oracle  -->
<selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE">SELECT 序列名.nextval from dual
</selectKey>
<!-- sql server -->
<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER">SELECT @@identity
</selectKey>

mysql

<selectKey keyProperty="orderId" resultType="java.lang.Integer" keyColumn="order_id" order="AFTER">SELECT LAST_INSERT_ID()
</selectKey>

mybatis新增返回主键值相关推荐

  1. Mybatis新增返回主键ID

    在做项目的过程中有时候难免会运用到新增一条数据并获取到新增的这条数据的主键ID,这样的一个功能,新增一条订单数据,并返回新增订单的ID.这样做的前提是数据的ID必须为自增. 我是用ssm框架做的项目, ...

  2. mybatis insert 返回主键_面试准备季——MyBatis 面试专题(含答案)

    话不多说,直接上题-- 1.什么是 Mybatis? (1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱 ...

  3. Mybaits插入记录返回主键值

    某些情况进行insert时不知道主键值(主键为自增),例如系统新增用户时,有用户序号(主键 自增),用户名,密码.插入时只需插入用户名和密码,之后取得mysql自增的序号. 如下为mysql的usr表 ...

  4. mybatis insert返回主键_MyBatis官方文档XML 映射文件

    XML 映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省 ...

  5. Mybatis insert返回主键ID

    Mybatis insert语句书写insert  id= "insertSelective"  useGeneratedKeys= "true"  keyPr ...

  6. mybatisplus新增返回主键_第17期:索引设计(主键设计)

    表的主键指的针对一张表中的一列或者多列,其结果必须能标识表中每行记录的唯一性.InnoDB 表是索引组织表,主键既是数据也是索引. 主键的设计原则 1. 对空间占用要小上一篇我们介绍过 InnoDB ...

  7. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  8. mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!

    第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...

  9. mysql插入数据返回主键值_Mysql插入记录后返回该记录ID

    最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表.研究了一番决定使用Mysql提供了一个LAST_INSER ...

最新文章

  1. 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML
  2. 广域网智能流量调度—Vecloud
  3. DNS协议报文(RFC1035)
  4. 监护仪系统都是Linux吗,基于Linux和MiniGUI的心电监护仪设计
  5. wxWidgets:wxSplashScreen 示例
  6. 使用Symantec Altiris 来监控 Dell 服务器 的 硬件
  7. Pytorch基本变量类型FloatTensor与Variable
  8. 无人值守地磅电子汽车衡中称重系统传感器原理及应用
  9. 1.SCRT怎么连接Ensp里面的设备???
  10. jmeter进行http接口压力测试
  11. 企业微信二维码转成名片
  12. ubuntu 16.04 插入耳机没有声音
  13. Project甘特图使用方法
  14. arduino中print()跟write()最大区别和注意事项 (最详细)
  15. 螃蟹在剥我的壳,笔记本在写我。 漫天的我落在枫叶上雪花上。 而你在想我。
  16. 详细介绍借助Docker Hub访问gcr.io镜像
  17. 【贪心算法】-背包问题
  18. 如何编制试算平衡表_会计试算平衡表怎么编制
  19. 求最小公倍数与最大公因数的三种算法
  20. JavaScript实现微信聊天烟花效果

热门文章

  1. 第四十期:2019年度十大Web开发趋势
  2. JS实现滚动监听以及滑动到顶部
  3. stylus之内置方法(Built-in Functions)
  4. Focal Loss 论文笔记
  5. python concat去除重复值语句_Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值...
  6. Apache的虚拟主机
  7. insert ignore duplicate key
  8. 油田 (Oil Deposits UVA - 572)
  9. #0 scrapy爬虫学习中遇到的坑记录
  10. Qt之Concurrent框架