场景一:

例如当我们想实现这样的查询的时候之前的操作貌似满足不了我们。

 场景二:

还有些时候我们如果输入的信息越多满足要求的就越多,所查找出来的用户就越少

当我们之输入姓名的时候可能查找出10个人,当再输入性别的时候可能人数就会减少一半

mybatis为了解决例如上面的问题引入了一些标签例如:

<if></if>
<where></where>
<foreach></foreach>
<when></when>
<set></set>

场景一的解决:

UserDao中的方法:

QueryVo实体类:

package com.zyb.pojo;

import java.util.List;

public class QueryVo {

    private User user;
private List<Integer> ids; public QueryVo() {
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public List<Integer> getIds() {
return ids;
} public void setIds(List<Integer> ids) {
this.ids = ids;
}
}

对应mapper.xml的SQL语句:

<select id="selByids" resultType="user" resultMap="userMap" parameterType="com.zyb.pojo.QueryVo">
<include refid="defaultSql"></include>
<where>
<if test="ids!=null and ids.size()>0">
<foreach collection="ids" open="and id in (" close=")" item="uid" separator=",">
#{uid}
</foreach>
</if>
</where> </select>

上面的<include refid="defaultSql"></include>是因为抽取了常用的代码段

场景二的解决:

UserDao的方法:

对应的mapper.xml的SQL语句:

    <select id="selByCondition" resultType="user" resultMap="userMap" parameterType="user">
select * from my_user
<where>
<if test="uname!=null">
and username=#{uname}
</if>
<if test="userSex!=null">
and sex=#{userSex}
</if>
</where>
</select>

set标签和if搭配使用:

参考:https://www.cnblogs.com/ysocean/p/7289529.html#_label3

最新文章

  1. 番外特别篇之 为什么我不建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起
  2. jQuery Mobile Datepicker 使用
  3. 循环日期的shell
  4. git安装步骤
  5. 图中最短路径算法(Dijkstra算法)(转)
  6. 小结JS中的OOP(下)
  7. linux驱动程序之电源管理 之linux休眠与唤醒(2)
  8. 2. shell之shell配置文件
  9. Java 8:如何使用流方式查询数据库?
  10. java中的进制转换方法
  11. 单点登录CAS使用记(八):使用maven的overlay实现无侵入的改造CAS
  12. zoj 3197 Google Book
  13. [置顶] jeecg-framework-3.3.2-RELEASE 最新版本发布
  14. jenkins+ant+jmeter接口自动化测试(持续构建)
  15. CentOS6.9编译安装Nginx1.12
  16. On-Heap与Off-Heap
  17. CSS中的选择器之类选择器和id选择器
  18. servlet之session设置
  19. win10安装MySQL5.7.21
  20. ado.net常用操作

热门文章

  1. main函数的参数详解
  2. Java入门学习路线目录索引
  3. 关于进程,I/O模型的文章
  4. C#中的循环:while do...while for
  5. UVA 11384 Help is needed for Dexter(递归)
  6. 论STA | POCV/SOCV 对lib 的要求 (4)
  7. php 基础 二维数组以某个重复值累加
  8. Spring IoC(一)bean实例化和依赖注入
  9. [Linux kali] linux kali [KDE]一些软件切换输入法无效
  10. tensorflow 学习记录