杜绝网上压根没测过就乱写之 《oracle mybatis 返回自增主键 》

面试过好多人,包括自己也属于这么一个情况:

  遇到问题直接去网上查,一般都可以查到解决方案。其中也包括一些基本的面试资料的答案。

  其实有很多答案也都是正确的,但是还是存在一些压根就是胡乱抄来的答案,也不经过验证就直接贴在自己博客上

  简直是害人害己,这开发工程师的圈子大了真是什么偷懒的都有。杜绝这一现象从我做起吧。以前写的代码很少有返回主键值的,都是记录生成记录的条数,所以我也是第一次做,特此记录

今天说下 oracle 能像mysql 和 sql server 一样返回主键:

1:创建你的表,然后创建seq

create sequence SEQ_YOUR_TABLE_NAME
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

2:创建好以后开始写xml的配置,只创建序列就可以,不需要创建触发器。

因为在插入数据的时候,mybatis 直接就将id set到你传入的bean中了

<insert id="insertId"
            parameterType="com.xxx.model.YOURMODEL">
        <selectKey keyProperty="id" resultType="java.lang.Integer" order="BEFORE">
            select SEQ_YOUR_TABLE_NAME.nextval as id from dual
        </selectKey>
            insert into YOUR_TABLE_NAME (ID,)
            values (
            #{id,jdbcType=DECIMAL})
    </insert>

3:然后JAVA 代码:记住

@Test
    public void testPriamary(){
        mapper.insertId(yourbean);
        int result = yourbean.getId();//这里是getId
        System.out.println(result);//返回你的主键值
    }

 

posted @ 2017-09-06 17:03  showme1942  阅读(175)  评论(0编辑  收藏  举报