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

/**
     * 将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();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值