public class Query extends Object implements Queryable
查询姓名为张三,并且年龄为22岁的用户:
Query query = new Query().eq("username","张三").eq("age",22);
List users = mapper.list(query);
查询年龄为10,20,30的用户:
Query query = new Query().in("age",Arrays.asList(10,20,30));
List users = mapper.list(query);
查询注册日期大于2017-11-11的用户:
Date regDate = ...
Query query = new Query().gt("reg_date",regDate);
List users = mapper.list(query);
查询性别为男的,年龄大于等于20岁的用户,按年龄降序:
Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);
List users = mapper.list(query);
分页查询:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
List users = mapper.list(query);
查询总记录数:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
long total = mapper.getCount(query); // 该条件下总记录数
| 构造器和说明 |
|---|
Query() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addAll(List<Expression> expressions) |
Query |
addAnnotionExpression(Object searchEntity)
添加注解查询条件
|
Expressional |
addExpression(Expression expression)
添加表达式
|
Query |
addPaginationInfo(SchPageableParam searchEntity)
添加分页信息
|
Query |
addParam(String name,
Object value)
添加额外参数
|
Query |
addSort(String sortname)
添加ASC排序字段,
|
Query |
addSort(String sortname,
Sort sort)
添加字段排序
|
Query |
addSortInfo(SchSortableParam searchEntity)
添加排序信息
|
Query |
allEq(LinkedHashMap<String,Object> map)
使用key/value进行多个等于的比对,相当于多个eq的效果
|
Query |
argPlaceholder(String argPlaceholder)
设置参数占位符,默认'?'
|
static Query |
build(Object searchEntity)
构建查询条件.
|
static Query |
buildFromBeanByProperty(Object bean)
将bean中的字段转换成条件,不会将字段名转换成下划线形式.
|
Query |
disableDistinct() |
Query |
disableForceQuery()
关闭强力查询,逻辑删除字段生效
|
Query |
disableForceUpdate() |
Query |
enableDistinct()
使用distinct,开启后,会在主键上加distinct。
|
Query |
enableForceQuery()
开启强力查询,将无视逻辑删除字段
|
Query |
enableForceUpdate()
开启强制更新,那么null字段也会更新进去
|
Query |
eq(String columnName,
Object value)
添加等于条件
|
Query |
ge(String columnName,
Object value)
大于等于,>=
|
boolean |
getDistinct() |
boolean |
getForceQuery() |
boolean |
getForceUpdate() |
boolean |
getIsQueryAll()
是否查询全部
|
boolean |
getIsSetTotal()
是否设置总记录数
|
List<ExpressionJoinable> |
getJoinExpressions()
返回连接表达式列表
|
int |
getLimit()
返回偏移量
|
List<ExpressionListable> |
getListExpressions()
返回集合表达式列表
|
String |
getOrder()
返回排序信息
|
boolean |
getOrderable()
是否具备排序,是返回true
|
Map<String,Object> |
getParam()
返回自定义参数,在xml中使用
#{参数名}获取值 |
List<ExpressionSqlable> |
getSqlExpressions()
返回自定义sql表达式列表
|
int |
getStart()
返回其实位置
|
int |
getTotal()
返回总记录数
|
List<ExpressionValueable> |
getValueExpressions()
返回单值表达式
|
Query |
gt(String columnName,
Object value)
添加大于条件,>
|
Query |
ignoreLogicDeleteColumn()
无视逻辑删除字段
|
Query |
in(String columnName,
Collection<?> value)
添加IN条件
|
<T> Query |
in(String columnName,
Collection<T> value,
ValueConvert<T> valueConvert)
添加IN条件
|
Query |
in(String columnName,
Object[] value)
添加IN条件
|
Query |
isEmpty(String column)
空字段条件,null或者空字符串
|
Query |
isNull(String column)
字段是null的条件
|
Query |
join(String joinSql)
添加关联条件
|
Query |
le(String columnName,
Object value)
小于等于,<=
|
Query |
like(String columnName,
String value)
添加两边模糊查询条件,两边模糊匹配,即name like '%value%'
|
Query |
likeLeft(String columnName,
String value)
添加左模糊查询条件,左边模糊匹配,即name like '%value'
|
Query |
likeRight(String columnName,
String value)
添加右模糊查询条件,右边模糊匹配,即name like 'value%'。
|
Query |
limit(int start,
int offset)
设置分页信息,针对不规则分页。
|
Query |
lt(String columnName,
Object value)
添加小于条件,<
|
Query |
notEmpty(String column)
不为空字符串
|
Query |
notEq(String columnName,
Object value)
添加不等于条件
|
Query |
notIn(String columnName,
Collection<?> value)
添加not in条件
|
<T> Query |
notIn(String columnName,
Collection<T> value,
ValueConvert<T> valueConvert)
添加not in条件
|
Query |
notIn(String columnName,
Object[] value)
添加not in条件
|
Query |
notNull(String column)
字段不为null的条件
|
Query |
oneEqTwo()
添加1=2条件
|
Query |
orderby(String sortname,
Sort sort)
字段排序
|
Query |
page(int pageIndex,
int pageSize)
设置分页信息
|
Query |
setQueryAll(boolean queryAll)
查询全部
|
void |
setTotal(int total) |
Query |
sql(String sql)
已过时。
|
Query |
sql(String sqlFormat,
Object... args)
添加自定义sql条件
|
Query |
sqlInjectRegex(String sqlInjectRegex)
设置SQL注入正则表达式
|
public Query eq(String columnName, Object value)
columnName - 数据库字段名value - 值public Query notEq(String columnName, Object value)
columnName - 数据库字段名value - 值public Query gt(String columnName, Object value)
columnName - 数据库字段名value - 值public Query ge(String columnName, Object value)
columnName - 数据库字段名value - 值public Query lt(String columnName, Object value)
columnName - 数据库字段名value - 值public Query le(String columnName, Object value)
columnName - 数据库字段名value - 值public Query likeLeft(String columnName, String value)
columnName - 数据库字段名value - 值,不需要加%public Query likeRight(String columnName, String value)
columnName - 数据库字段名value - 值,不需要加%public Query in(String columnName, Collection<?> value)
columnName - 数据库字段名value - 值public <T> Query in(String columnName, Collection<T> value, ValueConvert<T> valueConvert)
columnName - 数据库字段名value - 值valueConvert - 转换public Query in(String columnName, Object[] value)
columnName - 数据库字段名value - 值public Query notIn(String columnName, Collection<?> value)
columnName - 数据库字段名value - 值public <T> Query notIn(String columnName, Collection<T> value, ValueConvert<T> valueConvert)
columnName - 数据库字段名value - 值valueConvert - 转换器public Query notIn(String columnName, Object[] value)
columnName - 数据库字段名value - 值@Deprecated public Query sql(String sql)
sql - 自定义sqlsql(String, Object...)public Query sql(String sqlFormat, Object... args)
sqlFormat - SQL模板,参数值使用?代替,如:username = ? and nickname like '%?%'args - 参数public Query oneEqTwo()
public Query join(String joinSql)
joinSql - 连接sql语句,如:“left join user_info t2 on t.id=t2.user_id”public Query allEq(LinkedHashMap<String,Object> map)
map - 键值对public Query page(int pageIndex, int pageSize)
pageIndex - 当前第几页,从1开始pageSize - 每页结果集大小public Query limit(int start, int offset)
start - 记录起始位置offset - 偏移量public boolean getIsSetTotal()
PageablegetIsSetTotal 在接口中 Pageablepublic void setTotal(int total)
public Query orderby(String sortname, Sort sort)
sortname - 数据库字段名sort - 排序类型public Query addSort(String sortname, Sort sort)
sortname - 数据库字段名sort - 排序类型public boolean getOrderable()
SortablegetOrderable 在接口中 Sortablepublic Query addAnnotionExpression(Object searchEntity)
searchEntity - 查询实体public Query addPaginationInfo(SchPageableParam searchEntity)
searchEntity - 查询实体public Query addSortInfo(SchSortableParam searchEntity)
searchEntity - 查询实体public static Query buildFromBeanByProperty(Object bean)
User user = new User();
user.setUserName("jim");
Query query = Query.buildFromBeanByProperty(user);
这样会组装成一个条件:where userName='jim'
更多功能可查看开发文档.
bean - 查询实体public Expressional addExpression(Expression expression)
ExpressionaladdExpression 在接口中 Expressionalexpression - 表达式对象public void addAll(List<Expression> expressions)
public Query addParam(String name, Object value)
name - 参数名value - 值public boolean getIsQueryAll()
PageablegetIsQueryAll 在接口中 Pageablepublic Query setQueryAll(boolean queryAll)
queryAll - true,则查询全部public List<ExpressionValueable> getValueExpressions()
ExpressionalgetValueExpressions 在接口中 Expressionalpublic List<ExpressionJoinable> getJoinExpressions()
ExpressionalgetJoinExpressions 在接口中 Expressionalpublic List<ExpressionListable> getListExpressions()
ExpressionalgetListExpressions 在接口中 Expressionalpublic List<ExpressionSqlable> getSqlExpressions()
ExpressionalgetSqlExpressions 在接口中 Expressionalpublic boolean getForceQuery()
public Query enableDistinct()
public Query disableDistinct()
public boolean getDistinct()
public Query enableForceUpdate()
public Query disableForceUpdate()
public boolean getForceUpdate()
public Query argPlaceholder(String argPlaceholder)
argPlaceholder - 占位符Copyright © 2021. All Rights Reserved.