用于辅助拼接HQL语句_工具
来源:互联网 发布:广州数据分析师培训 编辑:程序博客网 时间:2024/05/22 10:38
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);}}
阅读全文
0 0
- 用于辅助拼接HQL语句_工具
- 辅助拼接生成HQL的工具类
- HQL语句拼接模板
- hql语句拼接
- HQL语句拼接模板
- hql语句拼接查询
- hql查询语句的拼接要注意
- hql语句不能用于插入数据
- 利用一个辅助变量来实现sql语句的拼接
- HQL查询语句拼接规范,避免SQL注入攻击
- 辅助函数_通用工具__STL
- 黑马程序员_学习日记55_628三层项目(用类封装用于拼接的where条件语句、写代码生成器)
- 简单的Hql拼接...
- HQL语句
- HQL语句
- hql语句
- HQL语句
- HQL语句
- Pycharm字体颜色设置
- 我的淘宝新店的辛酸与感恩
- oracle 单表查询
- Linux学习笔记 --Bash Scripts
- nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况
- 用于辅助拼接HQL语句_工具
- No mapping found for HTTP request with URI [/app17a/] in DispatcherServlet with name 'springmvc'解决方法
- 前端技术站
- hdu5517_Triple_二维树状数组
- Javascript获取select下拉框选中的的值
- spring boot 自定义controller不能扫描到的问题
- 欢迎使用CSDN-markdown编辑器
- Android Studio上传GitHub
- Android sqlite 使用框架