Mybatis多条件动态查询
程序员文章站
2022-03-11 21:41:55
...
当进行多条件动态查询时,最方便的使用@SelectProvider(type=XXXSqlProvider.class, method="getXXX")注解
此时我们需要编写自己的SqlProvider,我们需要用到org.apache.ibatis.jdbc.SqlBuilder中的静态方法,来看一段代码吧,如下:
public String getUserListByConditions(Map<String, Object> parameter){
String age= (String) parameter.get("age");
String isdead= (String) parameter.get("isdead");
BEGIN();
SELECT("*");
FROM("user");
if(age!=null&&!age.equals("")){
int _age= Integer.parseInt(age);
WHERE("age="+_age+"");
}
if(isdead!=null&&!isdead.equals("")){
boolean _isdead= Boolean.parseBoolean(isdead);
WHERE("isDisplay="+_isdead+"");
}
ORDER_BY("createtime DESC LIMIT #{offset}, #{pagesize}");
return SQL();
}
上面代码的意思是拼凑了一条sql语句,用以查询user。条件动态为:age,isdead,最后分页显示。
请注意该方法的参数parameter是获取Mapper传递过来的,对应的mapper如下:
@SelectProvider(type=UserSqlProvider.class, method="getUserListByConditions")
List<User> getUserListByConditions(@Param("age")String age,@Param("isdead")String isdead,@Param("offset")int offset,@Param("pagesize")int pageSize)
上一篇: 双向循环链表
下一篇: mybatis plus实现条件查询
推荐阅读
-
Mybatis动态sql、if与where的使用、sql片段、foreach遍历、Mybatis的关联查询一对一、一对多、多对多、Mybatis的延时加载
-
MyBatis Generator Example.Criteria 查询条件复制
-
mybatis 一对一、一对多和多对多查询实例代码
-
MyBatis实现动态查询、模糊查询功能
-
Mybatis模糊查询和动态sql语句的用法
-
mybatis 一对一、一对多和多对多查询实例代码
-
Mybatis 条件查询 批量增删改查功能
-
MyBatis实现动态查询、模糊查询功能
-
Spring Data JPA实现动态条件与范围查询实例代码
-
详解Spring Data JPA动态条件查询的写法