写完一个更新mapper 总结的教训和经验

前两天,领导给了我一个任务,写一个查询接口和一个更新接口,跟简单的任务,但是写了好几天才写出来,至于写的过程就不叙述了,写完之后感觉很丢人的。

我总结一下写的知识点和自己的感受

先说一下update sql 有三个没有关联的表,里面有三个相同的字段,前端把这三个参数传过来,需要根据其中两个字段,查出三个表中对应的记录 修改另一个字段,简单的方式,分别查出记录,如果有就修改,没有则跳过。这里不叙述了。这样得写6个mapper方法。

接下来说一下<selectKey>这个标签

简单来说这是一个在执行update insert 语句时 之前之后执行的一个select 语句 用于返回一个主键id或者返回一条记录数

<selectKey keyProperty="count" resultType="int" order="BEFORE">
  SELECT count(1) FROM DUAL WHERE ShopID =#{id,jdbcType=VARCHAR}
</selectKey>

keyProperty 是返回给pojo对象的一个属性 

resultType 返回的类型是int类型 

order 是在执行前还是执行后

<if test="count > 0"></if>   
<if test="count==0"></if>

当符合条件时执行条件 当不符合条件时也要处理  要不然会报错,我被这个坑 郁闷了一天。

 

第二个知识点:

查询三个无关联的表 结果合在一起 使用union all 当有查询条件的时候 要把查询条件放在条件里面 这样效率会高

第三个知识点 mapper 中动态sql

<where>  <choose>  <when><otherwise>  是在choose 内使用

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值