博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis关于mysql、oracle主键自增长
阅读量:6257 次
发布时间:2019-06-22

本文共 1436 字,大约阅读时间需要 4 分钟。

hot3.png

====================mysql====================

MyBatis 3.2.6插入时候获取自增主键方法

 

以MySQL5.5为例:

 

方法1:

    <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id">

        insert into person(name,pswd) values(#{name},#{pswd})
    </insert>

 

方法2:

    <insert id="insert" parameterType="Person">

        <selectKey keyProperty="id" resultType="long">
            select LAST_INSERT_ID()
        </selectKey>
        insert into person(name,pswd) values(#{name},#{pswd})
    </insert>

插入前实体id属性为0;

插入后实体id属性为保存后自增的id;

mysql、sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用

useGeneratedKeys=”true”来实现,比如下面的配置

insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})

==================oracle==========================

而oracle则不行,oracle主键自增长是通过sequence实现的,所以这种方式就不可以了,需要使用:

1.先通过sequence查出来id,再insert

select yoursequence.nextval as id from dual
insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})

2.直接insertsequence.nextval,如下

insert into s_user_auth (id,user_id, user_name) values(yoursequence.nextval,#{userid},#{username})

3

 <insert id="save" parameterType="com.threeti.to.ZoneTO" useGeneratedKeys=”false” >

    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >

      SELECT SEQ_ZONE.CURRVAL AS id from dual

    </selectKey>

    insert into TBL_ZONE (ID, NAME

      )

    values (SEQ_ZONE.NEXTVAL, #{name,jdbcType=VARCHAR}

      )

  </insert>

 

转载于:https://my.oschina.net/chenliyong/blog/678821

你可能感兴趣的文章
Django 文件下载功能
查看>>
走红日本 阿里云如何能够赢得海外荣耀
查看>>
qt 学习之路2
查看>>
线上应用故障排查之二:高内存占用
查看>>
第四次作业
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
BFS --- 素数环
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
python ----字符串基础练习题30道
查看>>
uva-10879-因数分解
查看>>
python 调用aiohttp
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
linux下文件的一些文件颜色的含义
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
如何花更少的时间学习更多的知识
查看>>
学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
查看>>
升级fedora 18到fedora 19
查看>>
【代码小记】无
查看>>
11月20日学习内容整理:jquery插件
查看>>
Redis客户端集群
查看>>