java mybatis + oracle如何配置自增ID

来源:互联网 发布:手指算法图解 编辑:程序博客网 时间:2024/06/06 00:18

oracle的自增ID是通过序列实现的(这一点与mysql不同)。假设数据库中存在一个序列的名字是
seq_trans_sn。那么我们在插入一条数据时,自增ID字段一般会用这样的方式:

insert into trans (TRANS_SN, ...) values (seq_trans_sn.nextval, ...);

上面是标用准的SQL语句来插入,在mabits一般不需要直接写sql,而是要修改配置文件。

我要修改的表名是trans,要实现自增的字段是trans_sn。我们只需要修改mybatis配置文件中的insert相关配置即可。

<selectKey keyProperty="transSn" resultType="java.math.BigDecimal" order="BEFORE">    select SEQ_TRANS_SN.nextval as transSn from dual  </selectKey>

其属性如下:

  • keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中

  • resultType ,返回类型,我的配置文件中,该字段的jdbc类型是:

#{transSn,jdbcType=DECIMAL}

DECIMAL对应到java语言是,java.math.BigDecimal。

  • order属性 ,取值范围BEFORE|AFTER,指定是在insert语句前还是后执行selectKey操作

然后insert部分写成这样:

insert into TRANS (TRANS_SN, ...)    values (#{transSn,jdbcType=DECIMAL},
0 0
原创粉丝点击