企业网站建站源码,中国电子商务网站建设情况,wordpress充值提现,自己创建平台要多少钱在使用MyBatis-Plus时#xff0c;我们可以通过QueryWrapper来构建复杂的查询条件#xff0c;其中可以使用and和or来嵌套条件。以下是一个使用and和or嵌套条件的例子#xff1a;
1. and ( ... or ... or...) 格式
import com.baomidou.mybatisplus.core.conditions.query.Q…在使用MyBatis-Plus时我们可以通过QueryWrapper来构建复杂的查询条件其中可以使用and和or来嵌套条件。以下是一个使用and和or嵌套条件的例子
1. and ( ... or ... or...) 格式
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;// 假设有一个实体类Entity和对应的服务类IService
public class Entity {private Integer id;private String name;private Integer age;// 省略其他字段、构造函数、getter和setter方法
}public interface IEntityService extends IServiceEntity {// 其他业务方法
}// 使用QueryWrapper构建查询条件
QueryWrapperEntity queryWrapper new QueryWrapper();
queryWrapper.eq(name, Alice) // 外层and条件.and(i - i.eq(age, 25).or().eq(age, 30)); // 嵌套and条件其中包含or条件// 使用服务类进行查询
ListEntity result entityService.list(queryWrapper);
GetMapping(value /list)public ResultIPageYwglInfo queryPageList(YwglInfo ywglInfo,RequestParam(name pageNo, defaultValue 1) Integer pageNo,RequestParam(name pageSize, defaultValue 10) Integer pageSize,HttpServletRequest req) {QueryWrapperYwglInfo queryWrapper QueryGenerator.initQueryWrapper(ywglInfo, req.getParameterMap());String kh req.getParameter(kh);if (StringUtils.isNotEmpty(kh)){//原来bug sql//queryWrapper.eq(send_addr,kh).or().eq(receive_addr,kh);queryWrapper.and(wrapper - wrapper.eq(send_addr,kh).or().eq(receive_addr,kh));}PageYwglInfo page new PageYwglInfo(pageNo, pageSize);IPageYwglInfo pageList ywglInfoService.page(page, queryWrapper);return Result.OK(pageList);}
打印出来的正确SQL如下
send_type 0并且(send_addr 4224 或者 receive_addr 4214)
SELECT send_addr, send_type, receive_addr, receive_type,create_time, create_by, state_desc, comm_type, sfsc, send_time
FROM ywglinfo WHERE(send_type 0 AND (send_addr 4224 OR receive_addr 4214))
ORDER BY create_time DESC
错误SQL少了括号
send_type 0并且send_addr 4224 或者 receive_addr 4214
SELECT send_addr, send_type, receive_addr, receive_type,create_time, create_by, state_desc, comm_type, sfsc, send_time
FROM ywglinfo WHERE
(send_type 0 AND send_addr 4224 OR receive_addr 4214)
ORDER BY create_time DESC
2. or ( ... and ... and ...) 格式
年纪既不等于6也不等于33
wrapper.or(wrapper - wrapper.ne(age, 6).ne(age,33);