0
点赞
收藏
分享

微信扫一扫

mybatis插入数据返回自增主键

kolibreath 2023-05-25 阅读 59

在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方法后 ,默认将自增主键封装在插入对象中

举报

相关推荐

0 条评论