package binGe.core.queryUtils;
import java.util.ArrayList;
import java.util.List;
//给查询的hql语句,
public class query {
//FORM语句
private String formClause="";
//where语句
private String whereClause="";
//order by语句
private String orderByClause="";
private List<Object> parmeters;
//排序顺序
public static String ORDER_BY_DESC="desc";
public static String ORDER_BY_ASC="asc";
/**
* 构造form语句,只出现一次
* @param clazz 查询的对象
* @param alias 给查询的对象设置别名
*/
public query(Class clazz,String alias){
formClause+="from "+clazz.getSimpleName()+" "+alias;
}
/**
* where语句构造
* @param condition:条件 如:i.id=? i.id like ?
* @param objects
*/
public void addCondition(String condition,Object...objects){
if(whereClause.length()>1){
whereClause+=" and "+condition;
}else{
//表示第一个查询条件
whereClause+=" where "+condition;
}
//设置条件集中处理
if(parmeters==null){
parmeters=new ArrayList<Object>();
}
if(objects!=null){
for (Object object : objects) {
parmeters.add(object);
}
}
}
/**
* 构造orderby语句
* @param property 排序属性 如 i.createTime
* @param order 怎么排序 desc降序 asc升序
*/
public void addOrderBy(String property, String order){
if(orderByClause.length()>1){
orderByClause+=","+property+" "+order;
}else{
//表示第一个排序条件
orderByClause+=" order by "+property+" "+order;
}
}
//得到查询的hql语句
public String getQuery(){
return formClause+whereClause+orderByClause;
}
//的到查询的?值,是集合
public List<Object> getParmeters(){
return parmeters;
}
//得到查询总记录数的语句
public String getTotalHql(){
return "select count(*) "+formClause+whereClause;
}
}
查询助手代码
最新推荐文章于 2025-03-07 09:39:13 发布
本文介绍了一个用于构建HQL查询的实用工具类,该类能够帮助开发者轻松地构造复杂的HQL查询语句,包括FROM、WHERE及ORDER BY子句。
1万+

被折叠的 条评论
为什么被折叠?



