Mybatis处理ORACLE自增的问题(通过触发器)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis处理ORACLE自增的问题(通过触发器)相关的知识,希望对你有一定的参考价值。

  1. 在oracle中创建序列语句并执行:

create
sequence
 user_seq start 
with
 1 increment 
by
 1;


在oracle创建触发器语句并执行:
create or replace trigger user_trigger
before insert on tb_user
for each row
begin 
select user_seq.nextval into :new.id from dual; 
end ;


2.然后在mybatis的mapper配置文件中插入一条记录时就不用指定id

    <?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="com.cn.mapper.UserMapper">
        <insert id="save" parameterType="com.cn.domain.User" useGeneratedKeys="true">
            INSERT INTO TB_USER(name,sex,age) VALUES(#{name},#{sex},${age})
        </insert>
    </mapper>


以上是关于Mybatis处理ORACLE自增的问题(通过触发器)的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1

Oracle实现主键自增的几种方式

Oracle 触发器实现主键自增

mybatis 自增主键配置

mybatis插入数据后返回自增的主键id

mybatis映射文件之获取自增的主键