zoukankan      html  css  js  c++  java
  • 分页查询count方法-删除hql中的order by子句

      分页查询count方法-删除hql中的order by字句

        /**
         * 获取查询数据总数
         *
         * @param hql
         * @param params
         * @return 结果集总数
         */
        public int count(String hql, Map<String, Object> params) {
    //        Query q = this.createQuery(hql, params);
    //        ScrollableResults scroll = q.scroll();
    //        scroll.last();
    //        return scroll.getRowNumber() + 1;
            // replaceAll忽略大小写: (?i)
            hql = hql.replaceAll("(?i)order\s+(?i)by\s+[^()]*", "");
            StringBuilder sb = new StringBuilder();
            sb.append("SELECT COUNT(*) ");
            sb.append(hql.substring(hql.toLowerCase().indexOf("from")));
            Object o = this.createQuery(sb.toString(), params).uniqueResult();
            return o == null ? 0 : Integer.parseInt("" + o);
        }

    ---

  • 相关阅读:
    约瑟夫问题
    再谈Bellman-Ford
    Uva 11478 Halum操作
    Uva 11090 在环中
    Bellman-Ford
    Uva 10537 过路费
    Uva 10917
    LA 3713 宇航员分组
    2-SAT
    LA 3211 飞机调度
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/14606840.html
Copyright © 2011-2022 走看看