用于辅助拼接HQL语句_工具
2017-06-15 20:30
323 查看
package cn.itcast.oa.util; import java.util.ArrayList; import java.util.List; import cn.itcast.oa.base.DaoSupport; import cn.itcast.oa.domain.PageBean; import com.opensymphony.xwork2.ActionContext; /** * 用于辅助拼接HQL语句_工具 * * @author * @version V1.0 */ @SuppressWarnings({ "rawtypes" }) public class QueryHelper { private String fromClause;// From子句 private String whereClause = "";// Where子句 private String orderByClause = "";// OrderBy子句 private List<Object> parameters = new ArrayList<Object>();// 参数列表 /** * 生成From子句 * * @param clazz * @param alias * 别名 */ public QueryHelper(Class clazz, String alias) { fromClause = " from " + clazz.getSimpleName() + " " + alias;// from User u } /** * 拼接Where子句 * * @param condition * @param params */ public QueryHelper addCondition(String condition, Object... params) { // 拼接 if (whereClause.length() == 0) { whereClause = " where " + condition;// from User u where ? } else { whereClause += " and " + condition;// from User u where ?,and ? } // 参数 if (params != null) { for (Object obj : params) { parameters.add(obj); } } return this; } /** * 如果第一个参数为true,则拼接Where子句 * * @param append * @param condition * @param params */ public QueryHelper addCondition(boolean append, String condition, Object... params) { if (append) { addCondition(condition, params); } return this; } /** * 拼接OrderBy子句 * * @param propertyName * 参于排序的属性名 * @param asc * true表示升序(1,2,3),false表示降序(3,2,1) */ public QueryHelper addOrderProperty(String propertyName, boolean asc) { if (orderByClause.length() == 0) { orderByClause = " Order by " + propertyName + (asc ? " asc " : " desc ");// from User u where ? order by ? asc/desc } else { orderByClause += " , " + propertyName + (asc ? " asc " : " desc ");// from User u where ? order by ? asc/desc,? asc/desc } return this; } /** * 如果第一个参数为true,则拼接OrderBy子句 * * @param append * @param propertyName * @param asc */ public QueryHelper addOrderProperty(boolean append, String propertyName, boolean asc) { if (append) { addOrderProperty(propertyName, asc); } return this; } /** * 获取生成用于查询数据列表的HQL语句 * * @return */ public String getListQueryHql() { return fromClause + whereClause + orderByClause; } /** * 获取生成用于查询总记录数的HQL语句 * * @return */ public String getCountQueryHql() { return " select count(*) " + fromClause + whereClause; } /** * 获取HQL中的参数值列表 * * @return */ public List<Object> getParameters() { return parameters; } /** * 查询分页信息,并放到值栈栈顶 * @param service * @param pageNum * @param pageSize */ public void preparePageBean(DaoSupport<?> service,int pageNum, int pageSize) { PageBean pageBean = service.getPageBean(pageNum, pageSize, this); ActionContext.getContext().getValueStack().push(pageBean); } }
相关文章推荐
- hibernate 小工具 Criteria 辅助拼写HQL
- HR辅助工具中用到的SQL语句
- Python实现的用于从布局文件的id生成成员变量声明和findViewById语句的Android开发小工具
- 有用的IsNull用于拼接select语句的多个字段(适用于查询结果有空的时候)
- hql语句拼接的替换方式
- [SqlHandle] java mysql语法 sql语句拼接工具简类
- hql语句不能用于插入数据
- hql查询语句的拼接要注意
- 微软官方提供的用于监控MS SQL Server运行状况的工具及SQL语句
- hql语句拼接查询
- HQL语句拼接模板
- 黑马程序员_学习日记55_628三层项目(用类封装用于拼接的where条件语句、写代码生成器)
- HQL语句拼接模板
- 使用json实现查询条件传回Action进行hql语句拼接查询实现在结果中查询功能在datagrid中显示查询结果
- hibernate之HQL语句编写(用于多表查询,单不复杂时使用)
- Java的Hibernate框架中用于操作数据库的HQL语句讲解
- HQL查询语句拼接规范,避免SQL注入攻击
- hibernate hql where语句拼接工具类
- hql语句拼接
- SQL语句生成器 辅助开发工具【3月7日更新】