栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

利用MyBatis进行不同条件的like模糊查询的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用MyBatis进行不同条件的like模糊查询的方法

之前一直是用MyBatis进行SQL查询时,一般都是用Generator逆向生产的代码来进行查询。

现在遇到了一个业务问题,我们需要进行对不同的条件分别进行模糊查询,首先我想到的就是根据对需要进行模糊查询的字段进行判断,然后调用Example的方式进行查询条件的注入。

对于String类型的数据可以有Like查询这个方法,但是Integer或者Long这种数据类型的话就没有了,得需要自己动手写。

但是呢,我利用Generator生成的代码Example方式进行模糊查询时确无法实现,原因不太清楚,但是感觉代码没问题。

于是,只能我们自己手动写SQL语句了。

但是呢,每个查询条件都写一个查询语句的话,简单归简单,但是太麻烦。

那么,我们能不能利用一个查询来实现对不同字段的模糊查询呢?

我的方法

1。首先,定义Search类,有查询字段Type,和查询条件Condition,利用这个类将数据传入SQL查询中。

public class SearchType {

  private String type;

  private String condition;

  public String getType() {
    return type;
  }

  public void setType(String type) {
    this.type = type;
  }

  public String getCondition() {
    return condition;
  }

  public void setCondition(String condition) {
    this.condition = condition;
  }
}

定义好类后,我们在Service中调用Mapper查询方法

public List searchUser(String type,String condition) {

    SearchType search = new SearchType();
    search.setCondition(condition);
    search.setType(type);

    //模糊查询各字段

      List list = userMapper.selectWithConditionLike(search);
      return list;

  }

这里的MKUser是我们查询结果后存储数据的类

下面看看Mapper.xml是如何实现的