利用MyBatis进行不同条件的like模糊查询
来源:互联网 发布:网络信息安全 编辑:程序博客网 时间:2024/06/05 06:05
之前一直是用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<MkUser> list = userMapper.selectWithConditionLike(search); return list; }
这里的MKUser是我们查询结果后存储数据的类
下面看看Mapper.xml是如何实现的
<select id="selectWithConditionLike" resultMap="BaseResultMap" parameterType="com.moka.common.pojo.SearchType" > select userid ,username ,we_name ,we_number ,tel_number ,updateTime ,invite_number ,purchased_total from mk_user where ${type} like CONCAT(CONCAT('%',#{condition}),'%') </select>
关于为什么一个地方是${},另一个是#{},自己查询这两个的区别。
注意数据库中的字段跟MKUser类中字段的对应,
我利用BaseResultMap进行了对应。
这样就搞定了。
有疑问随时评论联系我。
0 0
- 利用MyBatis进行不同条件的like模糊查询
- mybatis 不同数据库的like 模糊查询语句
- Mybatis的like模糊查询
- MyBatis的like模糊查询
- mybatis的like模糊查询
- Mybatis用like进行模糊查询问题
- Mybatis LIKE 模糊查询
- MyBatis 模糊查询 like %
- mybatis里的模糊查询Like
- mybatis逆向工程进行不同条件查询的应用处理
- MyBatis下动态语句使用like进行模糊查询
- myBatis 操作 mysql时,使用 like 关键进行模糊查询的方法
- Mybatis like 模糊查询问题
- Mybatis like 模糊查询问题
- mybatis做like模糊查询
- mybatis做like模糊查询
- mybatis做like模糊查询
- mybatis like 模糊查询问题
- Android MultiDex问题
- android studio项目运行失败 finished with non-zero exit value 1 的解决办法
- 从数据库取数据时,带有回车/换行符替换方法
- 快速排序
- C++指针与const
- 利用MyBatis进行不同条件的like模糊查询
- poj 1258(最小生成树)
- http详解(2)
- iOS ***各种网络编程面试总结****
- javaMail发送邮件(工具类开发)
- python redis实现bloomfilter
- poj 3128 Leonardo's Notebook (置换)
- meno
- java 中“==”与“equal” 的区别