`

mybatis selectkey uuid

 
阅读更多

                           

通过修改sql映射文件,可以将mysql自增主键返回:

<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">

       <!-- selectKey将主键返回,需要再返回 -->

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

           select LAST_INSERT_ID()

       </selectKey>

       insert into user(username,birthday,sex,address)

        values(#{username},#{birthday},#{sex},#{address});

    </insert>

添加selectKey实现将主键返回

keyProperty:返回的主键存储在pojo中的哪个属性

order:selectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after

resultType:返回的主键是什么类型

LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。







需要增加通过select uuid()得到uuid值



<insert  id="insertUser" parameterType="cn.itcast.mybatis.po.User">

<selectKey resultType="java.lang.String" order="BEFORE"

keyProperty="id">

select uuid()

</selectKey>

insert into user(id,username,birthday,sex,address)

       values(#{id},#{username},#{birthday},#{sex},#{address})

</insert>

注意这里使用的order是“BEFORE”

  oracle  主键生成:

               

首先自定义一个序列且用于生成主键,selectKey使用如下:

<insert  id="insertUser" parameterType="cn.itcast.mybatis.po.User">

<selectKey resultType="java.lang.Integer" order="BEFORE"

keyProperty="id">

SELECT 自定义序列.NEXTVAL FROM DUAL

</selectKey>

insert into user(id,username,birthday,sex,address)

       values(#{id},#{username},#{birthday},#{sex},#{address})

</insert>

注意这里使用的order是“BEFORE”
分享到:
评论

相关推荐

    MyBatis.pdf

    MyBatis 提供了多种主键回填方式,包括使用动态代理方式实现主键回填、使用 selectKey 标签实现主键回填和使用 UUID 或时间戳生成唯一主键。 MyBatis 的SQL 语句构建 MyBatis 提供了多种 SQL 语句构建方式,包括 ...

    mybatis-generator-core-1.3.6

    此工具是本人修改过的 可以自定义生成主键 配置详情如下: &lt;table tableName="user" domainObjectName="User"&gt;&lt;generatedKey column="id" sqlStatement="SELECT replace(uuid(),'-','') FROM dual"/&gt;&lt;/table&gt;

    MyBatis个人笔记

    1. **配置环境变量**:在项目中设置阿里云的AccessKey ID、AccessKey Secret以及Endpoint等信息。 2. **在YML文件中配置**:将阿里云OSS的相关信息配置到项目的YML文件中。 3. **创建工具类**:编写工具类来封装与...

    详解Java的MyBatis框架中动态SQL的基本用法

    此外,`&lt;selectKey&gt;`标签在MyBatis中用于在插入数据时动态生成主键。例如,MySQL中可以使用`UUID()`函数或自增列等方式生成主键。在示例中,通过`nextval('student')`函数生成一个主键,并将其设置到实体类的`...

    作业 31

    - 为了避免意外情况,如主键自增(如serial类型)可能导致的问题,可以选择其他类型的主键,比如整型或者UUID。 10. **文档规范性和作业评分标准**: - 作业提交需要考虑文档的规范性,包括清晰的步骤描述、代码...

    (2024)跳槽涨薪必备精选面试题.pdf

    - UUID:基于时间戳和随机数。 - 雪花算法:生成递增的唯一 ID。 - 分布式数据库自增 ID。 7. **分布式锁的使用场景及实现方案** - **使用场景**:资源争抢、分布式任务执行。 - **实现方案**:基于 Redis 的 ...

Global site tag (gtag.js) - Google Analytics