请选择 进入手机版 | 继续访问电脑版

mybatis-xml使用总结

[复制链接]
科达工艺 发表于 2021-1-1 18:33:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
1、条件使用

1.1 if条件

  1. SELECT        *FROM  `trade_order` tWHERE  t.is_valid = 'Y'   AND DATE_FORMAT(t.trade_finish_time, '%Y-%m-%d') >= #{searchDto.beginDate}   AND t.trade_order_type = #{searchDto.tradeOrderType} AND t.status LIKE 'SUCCESS%'
复制代码
加入在xml中使用>=大概= & ' "
替换符号 < <= > >= & &apos; &quot;
大于即是
= ]]>
小于即是

比方:


  • create_date_time >= #{startTime} and create_date_time  #{startTime} and create_date_time  #{endTime}
1.2 choose(if else)使用

  1.                         AND ro.has_comment=&#39;N&#39;                                AND ro.has_comment=&#39;Y&#39; AND ro.comment_result_type=&#39;GOOD&#39;                                AND ro.has_comment=&#39;Y&#39; AND ro.comment_result_type=&#39;BAD&#39;       
复制代码
1.3 foreach使用(循环)

场景1 多条件or拼接

  1. AND (1!=1 OR                                                ro.order_state=&#39;ASSIGNED&#39;                                                   (ro.order_state=&#39;EXCEPTION&#39; OR roas.after_sale_state=&#39;EXCEPTION&#39;)                                                        ro.order_state=&#39;CANCEL&#39;                                                        ro.order_state=&#39;FINISH&#39;                                                   ro.order_state=&#39;CLOSED&#39;                                                        (ro.order_state=&#39;FINISH&#39; AND ro.id_repair_order_after_sale IS NOT NULL AND roas.after_sale_state IN (&#39;HANDING&#39;,&#39;EXCEPTION&#39;,&#39;ASSIGNED&#39;))                                                        (rod.order_state=#{item} AND ro.order_state=&#39;HANDING&#39;)                       
复制代码
场景2 in内容拼接

  1. tri.id IN        #{item}转化为sql形如tri.id IN (&#39;1&#39;,&#39;2&#39;,&#39;3&#39;)
复制代码
1.4 如果某个sql需要在几个查询语句中通用,管理办法

首先通过界说sql语句,使用界说一个id,在使用时需要
  1.         SELECT                *                FROM        `trade_order` t        WHERE        t.is_valid = &#39;Y&#39;        ORDER BY t.create_time DESC
复制代码
如何使用,创建查询语句
  1.                
复制代码
1.5 在查询语句,存在list-detail关系时,需要直接将其在查询后转化为对象时

需要使用resultMap
  1. resultMap标签属性讲授1、column表示sql查询出来的列明2、property 表示type对应实体model的属性名称,这里界说转化关系即可3、collection 子标签表示要将查询detail内容转化为聚集将效果会合groupId、groupName、groupDesc转化为ApplyPersonVo的applyPersonGroupVoList属性                                                                                                                                        SELECT                r.id,                r.phone,                r.user_name AS userName,                r.open_type AS openType,                IF(r.open_type =&#39;Y&#39;,"已启用","已停用") AS open,                r.apply_start_time AS applyStartTime,                r.apply_end_time AS applyEndTime,                r.is_long_valid AS isLongValid,                pg.group_id as groupId,                pg.group_name as groupName,                pg.group_desc as groupDesc        FROM          yz_apply_person r        left join yz_apply_person_group_ref pgr on pgr.id_apply_person = r.id        left join yz_product_group pg on pg.id = pgr.id_product_group        WHERE r.is_valid=&#39;Y&#39;                        and r.phone like concat(&#39;%&#39;,#{dto.phone},&#39;%&#39;)                                and r.user_name like concat(&#39;%&#39;,#{dto.userName},&#39;%&#39;)                                and DATE_FORMAT(now(), &#39;%Y-%m-%d&#39;) > DATE_FORMAT(r.apply_end_time, &#39;%Y-%m-%d&#39;)                and r.is_long_valid = &#39;N&#39;                                and (DATE_FORMAT(r.apply_end_time, &#39;%Y-%m-%d&#39;) >= DATE_FORMAT(now(), &#39;%Y-%m-%d&#39;) or r.is_long_valid = &#39;Y&#39;)                                AND pg.group_id in                                        #{groupId}                                ORDER BY r.create_time descjava类@Datapublic class ApplyPersonVo extends RechargePersonVo implements Serializable {    @ApiModelProperty(value = "生效开始时间")    private Date applyStartTime;    @ApiModelProperty(value = "生效结束时间")    private Date applyEndTime;    @ApiModelProperty(value = "是否长期有效(Y-是,N-否)")    private String isLongValid;    @ApiModelProperty(value = "核销人员拥有的分组")    private List applyPersonGroupVoList;}@Datapublic class ApplyPersonGroupVo implements Serializable {    @ApiModelProperty(value = "分组db-Id")    private String id;    @ApiModelProperty(value = "分组名称")    private String groupName;    @ApiModelProperty(value = "分组形貌")    private String groupDesc;}仅做参考。实际情况根据项目需要,这里仅提供思路和项目组使用总结。
复制代码
 

 
 

来源:https://blog.csdn.net/qqzhengwei/article/details/112011074
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )