mybatis insert 插入接受不到返回的主键id

博主使用MyBatis返回主键ID时,实体类主键ID一直为null,经大量时间排查后做记录。介绍了MyBatis接受主键方法,包括dao层传递实体类、mapper.xml设置属性;还指出接受不到主键ID的原因,如dao层实体类不添加@Param()属性、xml不使用#{userAdvice.userId}。

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

今天使用mybatis时,需要返回主键id时,实体类主键id一直为null,花费大量时间排查,做一下记录,也希望能帮到其他的人。

一、mybtis接受主键方法

1.dao层传递的是封装好属性的实体类entity。

int insertUserAdvice(UserAdvice userAdvice);

2.mapper.xml文件中设置属性。

useGeneratedKeys="true" 
keyProperty="adviceId"  主键id
parameterType="com.cjwl.entity.UserAdvice" 实体类
<insert id="insertUserAdvice" useGeneratedKeys="true" keyProperty="adviceId" parameterType="com.cjwl.entity.UserAdvice">
        INSERT INTO userAdvice (createDate,userId,phone,advice)
        VALUES(
          #{createDate},#{userId},#{phone},#{advice}
        )
    </insert>

二。接受不到主键id的原因

1.实体类dao层 不要添加@Param()属性

2.xml不要使用#{userAdvice.userId}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值