Idea里用sql条件查询返回多条数据

用的是带条件的分页查询,效果一样也比较方便

1.sql部分

     sql = "SELECT * FROM orders  where rid = ? LIMIT ?,?";

2.分页类部分

package com.xka.util;

import java.io.Serializable;
import java.util.List;

public class Pager<T> {
    private int page = 1 ;
    private int pageSize = 10 ;
    private int rows ;

    private int pages ;//总的页数
    private boolean first ;
    private boolean last ;
    private int prev ;
    private int next ;
    private int beginRow ;
    private List<T> datas ;

    public Pager() {
    }

    public Pager(Integer page, Integer pageSize) {
        setPage(page);
        setPageSize(pageSize);
    }

    public int getPage() {
        return page;
    }

    public void setPage(Integer page) {
        if(page == null || page < 1){
            this.page= 1;
        }else {
            this.page = page;
        }

    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        if(pageSize == null || pageSize < 1){
            pageSize = 10 ;
        }else {
            this.pageSize = pageSize;
        }

    }
    /*
        总的记录数
     */
    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        if(rows < 0){
            rows = 0 ;
        }
        this.rows = rows;
        pages = rows / pageSize ;
        if(pages * pageSize < rows){
            pages = pages + 1 ;
        }
        if(page > pages){
            page = pages ;
        }
        if(page < 1 ){
            page = 1 ;
        }
        beginRow = (page-1) * pageSize;
        if(page == 1 ){
            first = true ;
        }
        if(page == pages){
            last = true ;
        }
        prev = page -1 ;
        if(prev < 1){
            prev = 1 ;
        }
        next = page +1 ;
        if(next>pages){
            next = pages ;
        }
        if(next < 1){
            next = 1;
        }
    }

    public int getPages() {//只读
        return pages;
    }


    public boolean isFirst() {
        return first;
    }


    public boolean isLast() {
        return last;
    }

    public int getPrev() {
        return prev;
    }


    public int getNext() {
        return next;
    }

    public int getBeginRow() {
        return beginRow;
    }

    public List<T> getDatas() {
        return datas;
    }

    public void setDatas(List<T> datas) {
        this.datas = datas;
    }
}

3.servlet部分

...
private OrderService service3 = new OrderService();
...
 String action = null;
        action = req.getParameter("action");
        if("findrooms".equals(action)){//从rooms.jsp的入住详情过来的
            Integer rid = new Integer(req.getParameter("rid"));
            Pager pager = new Pager();
            service3.findOrders(pager,null,rid);
            req.setAttribute("pager", pager);
            req.getRequestDispatcher("details.jsp").forward(req, resp);
        }
...

4.jsp部分

  <c:forEach items="${pager.datas}" var="order" varStatus="now">
        <table border="1">
        <tr>     <td>订单编号</td><td>${order.oid}</td></tr>
        <tr>     <td>真实姓名</td><td>${order.name}</td></tr>
        <tr>     <td>身份证号</td><td>${order.id}</td></tr>
        <tr>     <td>房间类型</td><td>${order.style}</td></tr>
        <tr>     <td>套房单价</td><td>${order.price}</td></tr>
        <tr>     <td>餐饮标准</td><td>${order.food}</td></tr>
        <tr>     <td>押金级别</td><td>${order.deposit}</td></tr>
        <tr>     <td>入住时间</td><td>${order.time1}</td></tr>
        <tr>     <td>入住天数</td><td>${order.day}</td></tr>
        <tr>     <td>套房消费</td><td>${order.room_pay}</td></tr>
        <tr>     <td>总 额</td><td>${order.total}</td></tr>
        <tr>     <td>结算时间</td><td>${order.time2}</td></tr>
        </table>
    </c:forEach>

!!!!!!!!!!!!!!!!!ヾ(◍°∇°◍)ノ゙!!!!!!!!!!!!!!!!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值