引用自:https://hacpai.com/article/1405392025960

mysql、sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用

useGeneratedKeys=”true”来实现,比如下面的配置

<insert id=”add” useGeneratedKeys=”true” keyProperty=”id” parameterType=”Auth”>
insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})
</insert>

而oracle则不行,oracle主键自增长是通过sequence实现的,所以这种方式就不可以了,需要使用:

1.先通过sequence查出来id,再insert

<insert id=”add” useGeneratedKeys=”false” keyProperty=”id” parameterType=”Auth”>
<selectKey resultType=”String” keyProperty=”id” order=”BEFORE”>
select yoursequence.nextval as id from dual
</selectKey>
insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})
</insert>

2.直接insertsequence.nextval,如下

<insert id=”add” useGeneratedKeys=”false” keyProperty=”id” parameterType=”Auth”>
insert into s_user_auth (id,user_id, user_name) values(yoursequence.nextval,#{userid},#{username})
</insert>

mybatis配置oracle的主键自增长的更多相关文章

  1. MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

    MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...

  2. Oracle 设置主键自增长__Oracle

    转自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的 ...

  3. Mybatis 操作数据库的主键自增长

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...

  4. Oracle实现主键自增长

    -- 主键设置:xx_id number(24) primary key 1 create sequence XX_seq --序列名称 increment by 1 -- 每次加几个 start - ...

  5. MyBatis+Oracle实现主键自增长的几种常用方式

    一.使用selectKey标签 <insert id="addLoginLog" parameterType="map" > <selectK ...

  6. mybatis insert oracle 返回主键

    mybtis返回oracle主键 只需要加一点代码(红色处的代码)就可以了 <!-- 添加记录到临时表 --> <insert id="insertPlaneStateme ...

  7. Oracle 设置主键自增长

    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的常用功能,我们还是有办法实现的.这里将展示使用触发器来实现主键自增. 1.准备 ...

  8. Oracle设置主键自增长

    第一步:为表设置主键 第二步:新建序列 CREATE SEQUENCE SQ.SEQ_INCREASE  START WITH 12  MAXVALUE 999  MINVALUE 0 INCREME ...

  9. myBatis插入oracle获取主键

    <insert id="insert" parameterType="com.inspur.biz.entry.SpLackApply"> < ...

随机推荐

  1. Java程序编译和运行的过程

    Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程. 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1.源文件由编译器编译成字节码(ByteCode)  2 ...

  2. jquery记住密码,记住账号,自动登录

    1.引入jquery库 2.引入jquery.cookie.js库 3.引入操作js jsp如下: $(document).ready(function() { //输入框获得焦点-失去焦点 $(&q ...

  3. [SVN(Ubuntu)] SVN 查看历史详细信息

    转载: http://lee2013.iteye.com/blog/1074457 以下内容,对ubuntu命令行查看代码变化非常有用. SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过 ...

  4. Struts2中过滤器和拦截器的区别

    拦截器和过滤器的区别: 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而 ...

  5. Ubuntu下查看linux版本,内核版本,系统位数,gcc版本

    1. 查看linux版本  sunny@ubuntu:~$cat /etc/issueUbuntu 11.04 \n \l 2. 查看内核版本1) sunny@ubuntu:~$ cat /proc/ ...

  6. java中值类型和引用类型的区别

    [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变. 值类型表示复制一个当前变量传给方法,当你 ...

  7. setup 桌面化设置网卡

    # setup

  8. OpenStack Swift集群与Keystone的整合使用说明

    之前已经介绍了OpenStack Swift集群和Keystone的安装部署,最后来讲一讲Swift集群与Keystone的整合使用吧. 1. 简介 本文档描述了Keystone与Swift集群的整合 ...

  9. ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法

    目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.php文件 'MODULE_ALLOW_LIST' => 'Ho ...

  10. 每个人都应该知晓的8项Resharper快捷键

    (此文章同时发表在本人微信公众号“dotNET每日精华文章”) 如果你已经在用Resharper这个编程神器(机器杀手)的话,那么为了进一步提高工作效率熟悉它的一些特殊特性和快捷键那是必须的. Res ...