Mybatis多条件动态查询

当进行多条件动态查询时,最方便的使用@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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值