首页 > 其他 > 详细

mybatis插入数据返回自增主键id

时间:2020-07-17 20:00:10      阅读:53      评论:0      收藏:0      [点我收藏+]

1. mybatis返回主键的方式有两种 , 我用的是下面这种
useGeneratedKeys : 为true,返回主键id的值

keyProperty : java对象成员属性名

keyColumn : 数据库字段 

<insert id="addCommodity"  useGeneratedKeys="true" keyProperty="CommodityId" parameterType="com.anonymity.project.InsertExcel.Commodity" >
INSERT INTO
   Commodity (
      CommodityCode,
      name,
      Title,
      Summary,
      STATUS,
      CreateTime,
      
   )
VALUES
      (#{commodity.commodityCode},#{commodity.name},#{commodity.title},#{commodity.summary},0,NOW())
   </insert>
@Mapper
public interface ReadExcelMapper {

    int addCommodity(@Param("commodity") Commodity commodity);

}

上面的代码 , 可以正常的插入数据 , 但是返回的数据是插入的行数 , 不是 主键id

2. 解决办法 :  将pojo对象 中的参数 , 改成和数据库一致 ( 注意大小写

<insert id="addCommodity"  useGeneratedKeys="true" keyProperty="CommodityId" parameterType="com.anonymity.project.InsertExcel.Commodity" >
            INSERT INTO
                Commodity (
                    CommodityCode,
                    name,
                    Title,
                    Summary,
                    STATUS,
                    CreateTime
                )
            VALUES
                    (#{CommodityCode},#{Name},#{Title},#{Summary},0,NOW())
                </insert>

去掉mapper接口中的 @Param 注解

@Mapper
public interface ReadExcelMapper {

    int addCommodity(Commodity commodity);

}

注意 : @Param 的使用

使用@Param时注意的问题
1.
●当用@Param注解来声明参数时,使用# {}或者${}都可以
●当不使用@Param注解时,必须使用#{},否则会报错

2.
如果是多个参数 , 要用@Param注解区分

注解是把双刃剑 , 

3. 注意 , 返回的主键不是你接收的数据 , 是在你的 pojo 对象里面 , 通过get方法来获取

int CommodityId= readExcelServiceImpl.addCommodity(commodity);

            System.out.println(CommodityId);

            int commodityId = commodity.getCommodityId();


//  CommodityId ==1;

// commodityId == 主键 id ; 

 

 结束 , 感谢帮我解决这个问题的朋友  Auster.

mybatis插入数据返回自增主键id

原文:https://www.cnblogs.com/Anonymity-zhang/p/13331630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!