public class Query extends Object implements Queryable
根据主键查询:
User user = dao.get(1);
查询姓名为张三的用户:
User user = dao.getByProperty("username","张三");
查询姓名为张三的用户返回列表:
List users = dao.listByProperty("username","张三");
查询姓名为张三,并且年龄为22岁的用户:
Query query = new Query().eq("username","张三").eq("age",22);
List users = dao.find(query);
查询年龄为10,20,30的用户:
Query query = new Query().in("age",Arrays.asList(10,20,30));
List users = dao.find(query);
查询注册日期大于2017-11-11的用户:
Date regDate = ...
Query query = new Query().gt("reg_date",regDate);
List users = dao.find(query);
查询性别为男的,年龄大于等于20岁的用户,按年龄降序:
Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);
List users = dao.find(query);
分页查询:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
List users = dao.find(query);
查询总记录数:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
long total = dao.countTotal(query); // 该条件下总记录数
| 构造器和说明 |
|---|
Query() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addAll(List<Expression> expressions) |
Query |
addAnnotionExpression(Object searchEntity)
添加注解查询条件
|
Expressional |
addExpression(Expression expression) |
Query |
addOtherColumn(String column)
添加其它表的字段 query.addOtherColumn("t2.username as name");
|
Query |
addOtherColumns(String... columns)
批量添加其它字段.
|
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的效果
|
static Query |
build() |
static Query |
build(Object searchEntity)
构建查询条件.
|
static Query |
buildFromBeanByProperty(Object bean)
将bean中的字段转换成条件,不会将字段名转换成下划线形式.
|
static Query |
buildQueryAll()
构建查询全部的表达式对象
|
Query |
eq(String columnName,
Object value)
添加等于条件
|
Query |
ge(String columnName,
Object value)
大于等于,>=
|
List<String> |
getColumns() |
int |
getFirstResult()
同getStart()
|
boolean |
getIsQueryAll() |
List<ExpressionJoinable> |
getJoinExpressions() |
int |
getLimit() |
List<ExpressionListable> |
getListExpressions() |
String |
getOrder()
返回排序信息
|
boolean |
getOrderable()
是否具备排序,是返回true
|
List<String> |
getOtherTableColumns() |
int |
getPageSize()
同getLimit()
|
Map<String,Object> |
getParam() |
List<ExpressionSqlable> |
getSqlExpressions() |
int |
getStart() |
List<ExpressionValueable> |
getValueExpressions() |
Query |
gt(String columnName,
Object value)
添加大于条件,>
|
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,
Object value)
添加模糊查询条件
|
Query |
limit(int start,
int offset)
设置分页信息,针对不规则分页。
|
Query |
lt(String columnName,
Object value)
添加小于条件,<
|
Query |
notEmpty(String column)
不为空字符串
|
Query |
notEq()
不等于条件
|
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 |
orderby(String sortname,
Sort sort)
字段排序
|
Query |
page(int pageIndex,
int pageSize)
设置分页信息
|
void |
setColumns(List<String> columns) |
Query |
setQueryAll(boolean queryAll)
查询全部
|
Query |
sql(String sql)
添加自定义sql条件
|
public static Query buildFromBeanByProperty(Object bean)
User user = new User();
user.setUserName("jim");
Query query = Query.buildFromBeanByProperty(user);
这样会组装成一个条件:where userName='jim'
更多功能可查看开发文档.
bean - public static Query build()
public Query addOtherColumn(String column)
column - public Query addOtherColumns(String... columns)
columns - public List<String> getOtherTableColumns()
getOtherTableColumns 在接口中 Queryablepublic Query page(int pageIndex, int pageSize)
pageIndex - 当前第几页,从1开始pageSize - 每页结果集大小public Query limit(int start, int offset)
start - 记录起始位置offset - 偏移量public int getFirstResult()
public int getPageSize()
public static Query buildQueryAll()
public Query addAnnotionExpression(Object searchEntity)
searchEntity - public Query addPaginationInfo(SchPageableParam searchEntity)
public Query addSortInfo(SchSortableParam searchEntity)
searchEntity - public Expressional addExpression(Expression expression)
addExpression 在接口中 Expressionalpublic void addAll(List<Expression> expressions)
public boolean getIsQueryAll()
getIsQueryAll 在接口中 Pageablepublic Query setQueryAll(boolean queryAll)
queryAll - true,则查询全部public List<ExpressionValueable> getValueExpressions()
getValueExpressions 在接口中 Expressionalpublic List<ExpressionJoinable> getJoinExpressions()
getJoinExpressions 在接口中 Expressionalpublic List<ExpressionListable> getListExpressions()
getListExpressions 在接口中 Expressionalpublic List<ExpressionSqlable> getSqlExpressions()
getSqlExpressions 在接口中 Expressionalpublic boolean getOrderable()
SortablegetOrderable 在接口中 Sortablepublic List<String> getColumns()
getColumns 在接口中 Queryablepublic Query allEq(LinkedHashMap<String,Object> map)
map - 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 lt(String columnName, Object value)
columnName - 数据库字段名value - 值public Query like(String columnName, Object 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 - 值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 - 值public Query notIn(String columnName, Object[] value)
columnName - 数据库字段名value - 值public Query notEq()
Copyright © 2018. All Rights Reserved.