• 杜绝网上压根没测过就乱写之 《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);//返回你的主键值
        }
    不积跬步无以至千里
  • 相关阅读:
    mysql sql的分类、运算符、常用的数据类型
    mysql 03章_完整性、约束
    java 在数组{1,2,3,4,6,7,8,9,10}中插入一个数5,使其插入完成后仍然有序
    mysql 数据库基本命令
    java 迷你DVD管理器
    15.Request对象的主要方法有哪些?
    get和post的区别?
    什么情况下调用doGet()和doPost()?
    spring的作用
    分享Bromon的blog上对IoC与DI浅显易懂的讲解
  • 原文地址:https://www.cnblogs.com/showme1942/p/7485782.html
Copyright © 2020-2023  润新知