面试过好多人,包括自己也属于这么一个情况:
遇到问题直接去网上查,一般都可以查到解决方案。其中也包括一些基本的面试资料的答案。
其实有很多答案也都是正确的,但是还是存在一些压根就是胡乱抄来的答案,也不经过验证就直接贴在自己博客上
简直是害人害己,这开发工程师的圈子大了真是什么偷懒的都有。杜绝这一现象从我做起吧。以前写的代码很少有返回主键值的,都是记录生成记录的条数,所以我也是第一次做,特此记录
今天说下 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);//返回你的主键值
}