mybatis插入数据返回自增主键

本文介绍了在MyBatisPlus中如何在XML和注解方式下处理自增主键。使用`useGeneratedKeys=true`和`keyProperty`属性可以在插入数据后获取主键值。同时,注意在DAO层避免使用`@Param`注解以确保主键返回。此外,展示了`selectKey`元素用于获取主键,以及`@Options`注解的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在xml中 insert 标签中定义

useGeneratedKeys为true,使用自增id,用来设置返回主键id的值
keyProperty 代表实体类映射字段段
keyColumn 代表数据库字段
useGeneratedKeys=“true” keyProperty=“id” 两个属性配合使用,支持单条或批量插入返回主键信息。

<insert id="insertTSupply" parameterType="TSupply" useGeneratedKeys="true" keyProperty="id">
        insert into t_supply
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="title != null">title,</if>
            <if test="details != null">details,</if>

注意事项:使用useGeneratedKeys生成主键时,不能在DAO层使用@Param注解传递参数,否则无法获取主键。

//Dao层对应的代码  不能使用 @Param注解传递参数
//Long savNewUser(@Param("user") User user);
 Long savNewUser( User user);

在xml里使用selectKey

 <!--添加订单到order-->
    <insert id="insert" parameterType="com.hxj.pojo.Orderx">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            select LAST_INSERT_ID()
        </selectKey>
        insert into orderx(userid,allprice,ordertime,address)
        values(#{userid},#{allprice},#{ordertime},#{address})
    </insert>

注解方式

// 返回主键字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert  into t_user (name,age) values (#{name},#{age})")
void insert(Student stu);

mybatisPlus

调用 BaseMapper 的 insert方法后 ,默认将自增主键封装在插入对象中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值