一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样

  1. //测试添加
  2. Employee employee = new Employee(null, "jerry4",null, "1");
  3. mapper.addEmp(employee);
  4. System.out.println(employee.getId());

那此时主键列我们进行`null值插入,插入后,如何能够获取自增的主键呢?

一、mybatis获取mysql自增主键

只需要关注mapper.xml中的sql语句

  1. <!-- public void addEmp(Employee employee); -->
  2. <!-- parameterType:参数类型,可以省略,
  3. 获取自增主键的值:
  4. mysql支持自增主键,自增主键值的获取,mybatis也是利用statement.getGenreatedKeys();
  5. useGeneratedKeys="true";使用自增主键获取主键值策略
  6. keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性
  7. -->
  8. <insert id="addEmp" parameterType="com.atguigu.mybatis.bean.Employee"
  9. useGeneratedKeys="true" keyProperty="id" databaseId="mysql">
  10. insert into tbl_employee(last_name,email,gender)
  11. values(#{lastName},#{email},#{gender})
  12. </insert>

二、mybatis获取Oracle自增主键

  1. <!--
  2. 获取非自增主键的值:
  3. Oracle不支持自增;Oracle使用序列来模拟自增;
  4. 每次插入的数据的主键是从序列中拿到的值;如何获取到这个值;
  5. -->
  6. <insert id="addEmp" databaseId="oracle">
  7. <!--
  8. keyProperty:查出的主键值封装给javaBean的哪个属性
  9. order="BEFORE":当前sql在插入sql之前运行
  10. AFTER:当前sql在插入sql之后运行
  11. resultType:查出的数据的返回值类型
  12. BEFORE运行顺序:
  13. 先运行selectKey查询id的sql;查出id值封装给javaBean的id属性
  14. 在运行插入的sql;就可以取出id属性对应的值
  15. AFTER运行顺序:
  16. 先运行插入的sql(从序列中取出新值作为id);
  17. 再运行selectKey查询id的sql;
  18. -->
  19. <selectKey keyProperty="id" order="BEFORE" resultType="Integer">
  20. <!-- 编写查询主键的sql语句 -->
  21. <!-- BEFORE-->
  22. select EMPLOYEES_SEQ.nextval from dual
  23. <!-- AFTER:
  24. select EMPLOYEES_SEQ.currval from dual -->
  25. </selectKey>
  26. <!-- 插入时的主键是从序列中拿到的 -->
  27. <!-- BEFORE:-->
  28. insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL)
  29. values(#{id},#{lastName},#{email<!-- ,jdbcType=NULL -->})
  30. <!-- AFTER:
  31. insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL)
  32. values(employees_seq.nextval,#{lastName},#{email}) -->
  33. </insert>

加油,努力学习Oracle !

Mybatis获取数据库自增主键的更多相关文章

  1. mybatis用mysql数据库自增主键,插入一条记录返回新增记录的自增主键ID

    今天在敲代码的时候遇到一个问题,就是往数据库里插入一条记录后需要返回这个新增记录的ID(自增主键), 公司框架用的是mybatis的通用Mapper接口,里面的插入方法貌似是不能把新纪录的ID回填到对 ...

  2. Mybatis useGeneratedKeys 填充自增主键值(使用Mysql)的原理分析

    一.Mybatis配置 <insert id="insert" parameterType="com.test.TestDO" keyProperty=& ...

  3. mybatis 获取insert返回的主键

    在我们开发过程中,在插入数据到数据库时,很多时候都需要把其主键返回,这里就说一下mybatis是怎么获取的. 其中mysql和oracle是不同的做法,因为mysql本身就提供字段自增的属性,而ora ...

  4. mybatis获取数据库自增id

    http://blog.csdn.net/dyllove98/article/details/8866357 http://www.iteye.com/problems/86864 insert标签中 ...

  5. spring boot 项目插入数据后,返回数据库自增主键

    在对应的实体上添加@GeneratedValue(generator = "JDBC"),如下所示 @GeneratedValue(generator = "JDBC&q ...

  6. mybatis获取批量插入的主键自增id

    一.写一个实体类 public class UserInfo { private long userId; private String userAccount; private String use ...

  7. mybatis获取插入的语句主键(自增主键)

    <insert id="insertUser" parameterType="User"> <selectKey keyProperty=&q ...

  8. oracle数据库自增主键重复

    select max(t.id) from T_PLAT_ENUM_VALUE tdrop sequence T_PLAT_ENUM_VALUE;create sequence T_PLAT_ENUM ...

  9. mybatis 获取新增数据的主键

    <insert id="insert" parameterType="com.mmall.pojo.Shipping" useGeneratedKeys= ...

随机推荐

  1. Centos7安装Hive2.3

    准备 1.hadoop已部署(若没有可以参考:Centos7安装Hadoop2.7),集群情况如下: hostname IP地址 部署规划 node1 172.20.0.4 NameNode.Data ...

  2. [CSS3] Use media query to split css files and Dark mode (prefers-color-scheme: dark)

    Dark Mode: :root { --text-color: #000; --background-color: #fff; } body { color: var(--text-color); ...

  3. 解决bash: less: command not found

    问题描述 使用less命令查找日志时,less命令未找到: 解决办法 安装less,执行如下命令: npm install -g less

  4. windows客户端

  5. Theano安装笔记

    由于实验需要,近三个月来,安装过十几次Theano,基本上每次都是从最基本的nvidia driver装起.总结一些粗浅的安装心得. GPU:Nvidia K40, M40, M60 软件环境:Unb ...

  6. mysql ltrim() 函数

    mysql> select " dedede"; +----------+ | dedede | +----------+ | dedede | +----------+ r ...

  7. 无人机一体化3DGIS服务平台

    随着无人机技术的发展,无人机携带多种设备为GIS应用提供多元化海量基础数据.无人机航测更是以快速.灵活.高效的数据获取方式,迅速扩大了现有的GIS市场,同时GIS行业的广泛应用也推动了无人机技术的发展 ...

  8. MAC 隐藏功能

    finder 类: shift+ cmd + G  (去指定路径) cmd+↑ (返回) cmd+↓(打开当前选中的文件,如果没有选中的则去选中第一个) cmd+ o (打开当前选中的文件) 以下这些 ...

  9. iview 的事件绑定

    iview 内的组件样式是不错,有时候我们想用它且绑定某个事件: 比如,我们使用了步骤条组件(Steps),然后绑定点击事件,实现每次点击某个步骤条内的step 就显示此step的具体信息, < ...

  10. 阿里云服务器在控制台配置网页强制https访问

    最近接触到一个新的网站,网站的访问方式,是http, 因此在浏览器打开的时候老是显示不安全.因此要配置https访问. 首先,先说明服务器是在阿里云的,域名也是阿里云的. 方法一 1 首先在阿里云的c ...