用Mybatis在Oracle数据库中生成主键

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YiWangJiuShiXingFu/article/details/85041129

我们知道,mysql优化里面有一条:为每一张表都设置一个int类型的主键,它能够自增,方便分页和排序。

        Oracle数据库中,它不支持主键自增,所以需要我们从序列中取得最新的序列值。

        在Mybatis中,可以使用 selectKey标签,在执行SQL语句之前,为实体的ID属性赋值,然后再执行SQL。

  

<insert id="insert" parameterType="MyAccount">
        <selectKey keyProperty="id" resultType="long" order="BEFORE">
            select SEQ_EXAMINEE.nextval from dual    
        </selectKey>
        insert into T_Register(id,idCard,cellPhone,password,name)
        values(#{id},#{idCard},#{cellPhone},#{password},#{name})
</insert>

  #dual是Oracle里面一个虚拟的表。

        MyAccount这个类必须有ID这个属性,并且需要提供SET方法。

附上参考表:

注意事项:oracle数据库必须要有序列才能自动生成主键,不然会报错的。 建序列请参考:

扫描二维码关注公众号,回复: 5503729 查看本文章

https://blog.csdn.net/hu_dongyang/article/details/79039737

猜你喜欢

转载自blog.csdn.net/YiWangJiuShiXingFu/article/details/85041129
今日推荐