您的位置:首页 > 数据库

sql语句转化为分页查询的一种实现

2016-01-14 11:47 751 查看
[code]/**
     * 将sql语句转化为分页查询
     *
     * */
    public static String addfy4oracle(String sql, int start, int limit, List args,String order,
            String ascOrdesc ) {
        StringBuffer strB = new StringBuffer(sql);
        StringBuffer orderby = new StringBuffer();
        if (order != null) {
            orderby.append(" ORDER BY ").append(order).append(" ").append(
                    ascOrdesc);
            // args.add(order);//如果order写成?,会使排序无效
        }
        if (start > 0 || limit > 0) {
            strB.insert(0, "SELECT * FROM ( SELECT temp.* ,ROWNUM num  FROM (");
            strB.append(orderby);
            strB.append(") temp ");
            if (limit > 0) {
                if (start < 0) {
                    start = 0;
                }
                strB.append(" WHERE ROWNUM <= ? )");
                args.add(start + limit);
            }
            if (start > 0) {
                strB.append(" where num > ? ");
                args.add(start);
            }
        }
//      log.debug("strB::" + strB.toString());
        return  strB.toString();
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: