写完一个更新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 内使用

猜你喜欢

转载自blog.csdn.net/jishuxiaobai123/article/details/82811765