mybatis 主键回填

如果数据库中主键自增:keyProperty网上包括书本写的都是id(坑爹)(如果传的是一个Specification对象,要写成spec.specid)

   

public int add(@Param("spec") Specification spec);

<insert id="add"  useGeneratedKeys="true"   keyProperty="spec.specid" >

    INSERT into specification(userid,name,type,version,development_unit,announce_time,completetime,docperson,
  chargeperson,description,preface,usescope,ref_desc,attachment,docpath,allowdown,shortName,
  pdfpath,modifytime,versionType,docTime,saveType,isInternet)
  VALUES (#{spec.userid},#{spec.name},#{spec.type},#{spec.version},#{spec.developmentUnit},#{spec.announceTime},#{spec.completetime},#{spec.docperson},
  #{spec.chargeperson},#{spec.description},#{spec.preface},#{spec.usescope},#{spec.refDesc},#{spec.attachment},#{spec.docpath},#{spec.allowdown},#{spec.shortName},
  #{spec.pdfpath},#{spec.modifytime},#{spec.versionTypeId},#{spec.docTime},#{spec.saveType},#{spec.isInternet})
</insert>
如果数据库中主键没有自增,需要自定义生成规则:
 
<insert id="add"  useGeneratedKeys="true"   keyProperty="spec.specid" >
 <selectKey keyProperty="specid" resultType="int" order="BEFORE">
     SELECT if(max(specid) is null,1,max(specid)+2) as newId from specification
</selectKey>
INSERT into specification(userid,name,type,version,development_unit,announce_time,completetime,docperson, chargeperson,description,preface,usescope,ref_desc,attachment,docpath,allowdown,shortName, pdfpath,modifytime,versionType,docTime,saveType,isInternet) VALUES (#{spec.userid},#{spec.name},#{spec.type},#{spec.version},#{spec.developmentUnit},#{spec.announceTime},#{spec.completetime},#{spec.docperson}, #{spec.chargeperson},#{spec.description},#{spec.preface},#{spec.usescope},#{spec.refDesc},#{spec.attachment},#{spec.docpath},#{spec.allowdown},#{spec.shortName}, #{spec.pdfpath},#{spec.modifytime},#{spec.versionTypeId},#{spec.docTime},#{spec.saveType},#{spec.isInternet}) </insert>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值