杜绝网上压根没测过就乱写之 《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);//返回你的主键值
}
上一篇:[LeetCode] Reverse Integer 翻转整数


下一篇:BZOJ 1070: [SCOI2007]修车 [最小费用最大流]