MyBatisPlus条件构造器Condition的用法
生活随笔
收集整理的这篇文章主要介绍了
MyBatisPlus条件构造器Condition的用法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
场景
项目搭建专栏:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194
基础搭建:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89407994
条件构造器介绍使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89482201
实现
查看Condition的源码可知其继承自Wrapper方法,所以Wrapper的方法都可以使用。
它有一个获取实例的方法
/*** 获取实例*/public static Condition create() {return new Condition();}
编写测试方法:
/****条件构造器 Condition*/@Testpublic void testConditionOrderBy() {List<Employee> employeeList=employeeMapper.selectList(Condition.create().eq("gender",1).like("name", "霸").orderBy("age").last("desc limit 1,2")//.orderDesc(Arrays.asList(new String[] {"age"}))//.orderAsc(Arrays.asList(new String[] {"age"})));System.out.println("*******************"+employeeList);for (Employee employee : employeeList) {System.out.println(employee.getAge());}}源码下载
https://download.csdn.net/download/badao_liumang_qizhi/11142337
Condition源码
/*** Copyright (c) 2011-2020, hubin (jobob@qq.com).* <p>* Licensed under the Apache License, Version 2.0 (the "License"); you may not* use this file except in compliance with the License. You may obtain a copy of* the License at* <p>* http://www.apache.org/licenses/LICENSE-2.0* <p>* Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT* WARRANTIES OR EntityWrapperS OF ANY KIND, either express or implied. See the* License for the specific language governing permissions and limitations under* the License.*/ package com.baomidou.mybatisplus.mapper;import com.baomidou.mybatisplus.toolkit.StringUtils;/*** <p>* 条件查询构造器* </p>** @author hubin Caratacus* @date 2016-11-7*/ @SuppressWarnings({"rawtypes", "serial"}) public class Condition extends Wrapper {/*** 构建一个Empty条件构造 避免传递参数使用null*/public static final Wrapper EMPTY = new Wrapper() {@Overridepublic String getSqlSegment() {return null;}};/*** 获取实例*/public static Condition create() {return new Condition();}/*** SQL 片段*/@Overridepublic String getSqlSegment() {if (SqlHelper.isEmptyOfWrapper(this)) {return null;}/** 无条件*/String sqlWhere = sql.toString();if (StringUtils.isEmpty(sqlWhere)) {return null;}/** 根据当前实体判断是否需要将WHERE替换成 AND 增加实体不为空但所有属性为空的情况*/return isWhere != null ? (isWhere ? sqlWhere : sqlWhere.replaceFirst("WHERE", AND_OR)) : sqlWhere.replaceFirst("WHERE", AND_OR);}/*** 构造一个空的Wrapper<T></>** @param <T>* @return*/public static <T> Wrapper<T> empty() {return (Wrapper<T>) EMPTY;}/*** 构造一个Wrapper<T></>** @param <T>* @return*/public static <T> EntityWrapper<T> wrapper() {return new EntityWrapper<>();}}
总结
以上是生活随笔为你收集整理的MyBatisPlus条件构造器Condition的用法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MyBatisPlus条件构造器带条件排
- 下一篇: MyBatisPlus的ActiveRe