Package io.mybatis.mapper.example
Class Example<T>
- java.lang.Object
-
- io.mybatis.mapper.example.Example<T>
-
public class Example<T> extends Object
通用的 Example 查询对象- Author:
- liuzh
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classExample.Criteria<T>static classExample.Criterionprotected static classExample.GeneratedCriteria<T>static classExample.OrCriteria<T>static classExample.Order排序方式
-
Field Summary
Fields Modifier and Type Field Description protected booleandistinct是否使用 distinctprotected StringendSql结尾 SQL,添加到 SQL 最后,注意防止 SQL 注入protected StringorderByClause排序字段protected List<Example.Criteria<T>>oredCriteria多组条件通过 OR 连接protected StringselectColumns指定查询列protected List<Example.Criterion>setValues设置 update 时的 set 字段protected StringsimpleSelectColumns指定查询列,不带 column As Alias 别名protected StringstartSql起始 SQL,添加到 SQL 前,注意防止 SQL 注入
-
Constructor Summary
Constructors Constructor Description Example()默认构造方法,不允许Example查询条件为空,不能操作全库
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()清除所有设置Example.Criteria<T>createCriteria()创建一组条件,第一次调用时添加到默认条件中protected Example.Criteria<T>createCriteriaInternal()Example<T>excludeColumns(Fn<T,Object>... fns)排除指定的查询列,设置时会清除selectColumnsStringgetEndSql()获取结尾 SQLStringgetOrderByClause()获取排序列List<Example.Criteria<T>>getOredCriteria()获取所有条件StringgetSelectColumns()获取查询列List<Example.Criterion>getSetValues()获取 set 值StringgetSimpleSelectColumns()获取查询列,不带 column As Alias 别名StringgetStartSql()获取起始 SQLbooleanisDistinct()是否使用 distincebooleanisEmpty()查询条件是否为空Example.Criteria<T>or()or 一组条件voidor(Example.Criteria<T> criteria)or 条件Example<T>orderBy(Fn<T,Object> fn, Example.Order order)通过方法引用方式设置排序字段Example<T>orderBy(String orderByCondition)用于一些非常规的排序 或 简单的字符串形式的排序
本方法 和 example.setOrderByClause 方法的区别是 本方法不会覆盖已有的排序内容
eg: ORDER BY status = 5 DESC 即将 status = 5 的放在最前面
此时入参为:Example<T>orderBy(Supplier<String> orderByCondition)用于一些特殊的非常规的排序,排序字符串需要通过一些函数或者方法来构造出来
eg: ORDER BY FIELD(id,3,1,2) 即将 id 按照 3,1,2 的顺序排序
此时入参为:Example<T>orderByAsc(Fn<T,Object>... fns)通过方法引用方式设置排序字段,升序排序Example<T>orderByDesc(Fn<T,Object>... fns)通过方法引用方式设置排序字段,降序排序Example.OrCriteria<T>orPart()创建一个 or条件片段(不追加到当前Example)Example<T>selectColumns(Fn<T,Object>... fns)指定查询列,多次调用会覆盖,设置时会清除excludeColumns(io.mybatis.mapper.fn.Fn<T, java.lang.Object>...)Example<T>set(Fn<T,Object> fn, Object value)设置更新字段和值Example<T>set(String setSql)设置更新字段和值Example<T>setDistinct(boolean distinct)设置 distinceExample<T>setEndSql(String endSql)设置结尾 SQLExample<T>setOrderByClause(String orderByClause)设置排序列Example<T>setSelectColumns(String selectColumns)指定查询列Example<T>setSimpleSelectColumns(String simpleSelectColumns)设置简单查询列,不能带别名Example<T>setStartSql(String startSql)设置起始 SQL
-
-
-
Field Detail
-
orderByClause
protected String orderByClause
排序字段
-
distinct
protected boolean distinct
是否使用 distinct
-
selectColumns
protected String selectColumns
指定查询列
-
simpleSelectColumns
protected String simpleSelectColumns
指定查询列,不带 column As Alias 别名
-
startSql
protected String startSql
起始 SQL,添加到 SQL 前,注意防止 SQL 注入
-
endSql
protected String endSql
结尾 SQL,添加到 SQL 最后,注意防止 SQL 注入
-
oredCriteria
protected List<Example.Criteria<T>> oredCriteria
多组条件通过 OR 连接
-
setValues
protected List<Example.Criterion> setValues
设置 update 时的 set 字段
-
-
Method Detail
-
or
public void or(Example.Criteria<T> criteria)
or 条件- Parameters:
criteria- 条件
-
or
public Example.Criteria<T> or()
or 一组条件- Returns:
- 条件
-
orPart
public Example.OrCriteria<T> orPart()
创建一个 or条件片段(不追加到当前Example)- Returns:
- 条件
-
createCriteria
public Example.Criteria<T> createCriteria()
创建一组条件,第一次调用时添加到默认条件中- Returns:
- 条件
-
createCriteriaInternal
protected Example.Criteria<T> createCriteriaInternal()
-
clear
public void clear()
清除所有设置
-
selectColumns
@SafeVarargs public final Example<T> selectColumns(Fn<T,Object>... fns)
指定查询列,多次调用会覆盖,设置时会清除excludeColumns(io.mybatis.mapper.fn.Fn<T, java.lang.Object>...)- Parameters:
fns- 方法引用
-
excludeColumns
public final Example<T> excludeColumns(Fn<T,Object>... fns)
排除指定的查询列,设置时会清除selectColumns- Parameters:
fns- 方法引用
-
getSelectColumns
public String getSelectColumns()
获取查询列- Returns:
- 查询列
-
setSelectColumns
public Example<T> setSelectColumns(String selectColumns)
指定查询列- Parameters:
selectColumns- 查询列
-
getSimpleSelectColumns
public String getSimpleSelectColumns()
获取查询列,不带 column As Alias 别名- Returns:
- 查询列
-
setSimpleSelectColumns
public Example<T> setSimpleSelectColumns(String simpleSelectColumns)
设置简单查询列,不能带别名- Parameters:
simpleSelectColumns- 简单查询列
-
getStartSql
public String getStartSql()
获取起始 SQL- Returns:
- 起始 SQL
-
setStartSql
public Example<T> setStartSql(String startSql)
设置起始 SQL- Parameters:
startSql- 起始 SQL,添加到 SQL 前,注意防止 SQL 注入
-
getEndSql
public String getEndSql()
获取结尾 SQL- Returns:
- 结尾 SQL
-
setEndSql
public Example<T> setEndSql(String endSql)
设置结尾 SQL- Parameters:
endSql- 结尾 SQL,添加到 SQL 最后,注意防止 SQL 注入
-
orderBy
public Example<T> orderBy(Fn<T,Object> fn, Example.Order order)
通过方法引用方式设置排序字段- Parameters:
fn- 排序列的方法引用order- 排序方式- Returns:
- Example
-
orderBy
public Example<T> orderBy(String orderByCondition)
用于一些非常规的排序 或 简单的字符串形式的排序
本方法 和 example.setOrderByClause 方法的区别是 本方法不会覆盖已有的排序内容
eg: ORDER BY status = 5 DESC 即将 status = 5 的放在最前面
此时入参为:example.orderBy("status = 5 DESC")- Parameters:
orderByCondition- 字符串排序表达式- Returns:
- Example
-
orderBy
public Example<T> orderBy(Supplier<String> orderByCondition)
用于一些特殊的非常规的排序,排序字符串需要通过一些函数或者方法来构造出来
eg: ORDER BY FIELD(id,3,1,2) 即将 id 按照 3,1,2 的顺序排序
此时入参为:example.orderBy(()-> { return Stream.of(3,1,2) .map(Objects::toString) .collect(Collectors.joining("," , "FIELD( id ," , ")")); })- Parameters:
orderByCondition- 字符串排序表达式- Returns:
- Example
-
orderByAsc
@SafeVarargs public final Example<T> orderByAsc(Fn<T,Object>... fns)
通过方法引用方式设置排序字段,升序排序- Parameters:
fns- 排序列的方法引用- Returns:
- Example
-
orderByDesc
@SafeVarargs public final Example<T> orderByDesc(Fn<T,Object>... fns)
通过方法引用方式设置排序字段,降序排序- Parameters:
fns- 排序列的方法引用- Returns:
- Example
-
getOrderByClause
public String getOrderByClause()
获取排序列- Returns:
- 排序列
-
setOrderByClause
public Example<T> setOrderByClause(String orderByClause)
设置排序列- Parameters:
orderByClause- 排序列
-
getOredCriteria
public List<Example.Criteria<T>> getOredCriteria()
获取所有条件- Returns:
- 条件
-
getSetValues
public List<Example.Criterion> getSetValues()
获取 set 值
-
isEmpty
public boolean isEmpty()
查询条件是否为空- Returns:
-
isDistinct
public boolean isDistinct()
是否使用 distince- Returns:
- distince
-
setDistinct
public Example<T> setDistinct(boolean distinct)
设置 distince- Parameters:
distinct- true启用,false不使用
-
-