POS管理系统之出入库单分页查询

JSP:

<html>
  <head>
    <title>My JSP ‘inOutKuPage.jsp‘ starting page</title>
 <style type="text/css">
        table{
          border-color: blue;
        }
        .a{
         background-color: blue;
         text-align: center;
        }
    </style>
 <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.10.2.js"></script>
 <script type="text/javascript">
       $(function(){
        $("#query").click(function(){
           var url=‘<%=request.getContextPath()%>/inOutPage.do‘;
           $.post(url,
               {
                  inoutno:$("#no").val(),
                  people:$("#people").val()
               },
               function(data){
                 $("tr[id^=‘order‘]").remove();
                 $("#prePage").val(data.prePage);
     $("#nextPage").val(data.nextPage);
     $("#total").html(data.totalRecords);
                 $.each(data.records,function(i,d){
                    var rows="<tr id=‘order‘"+i+">";
                    rows+="<td>"+d.inoutno+"</td>";
                    rows+="<td>"+d.username+"</td>";
                    rows+="<td>"+d.people+"</td>";
                    rows+="<td>"+d.inout+"</td>";
                    rows+="<td>"+d.ctime+"</td>";
                    rows+="</tr>";
                    $("#show").append(rows);
                 });
               },
               "json");
        });
        $("#pre").click(function(){
           var url=‘<%=request.getContextPath()%>/inOutPage.do‘;
           $.post(url,
                {
                 inoutno:$("#no").val(),
                 people:$("#people").val(),
                 pageNo:$("#prePage").val(),
                },
                function(data){
                $("tr[id^=‘order‘]").remove();
     $("#prePage").val(data.prePage);
     $("#nextPage").val(data.nextPage);
     $("#total").html(data.totalRecords);
     $.each(data.records,function(i,d){
      var rows="<tr id=‘order‘"+i+">";
        rows+="<td>"+d.inoutno+"</td>";
                    rows+="<td>"+d.username+"</td>";
                    rows+="<td>"+d.people+"</td>";
                    rows+="<td>"+d.inout+"</td>";
                    rows+="<td>"+d.ctime+"</td>";
                    rows+="</tr>";
                    $("#show").append(rows);
     });
                },
           "json");
        });
        $("#next").click(function(){
              var url=‘<%=request.getContextPath()%>/inOutPage.do‘;
               $.post(url,
                {
                 inoutno:$("#no").val(),
                 people:$("#people").val(),
                 pageNo:$("#nextPage").val(),
                },
                  function(data){
                $("tr[id^=‘order‘]").remove();
     $("#prePage").val(data.prePage);
     $("#nextPage").val(data.nextPage);
     $("#total").html(data.totalRecords);
     $.each(data.records,function(i,d){
      var rows="<tr id=‘order‘"+i+">";
        rows+="<td>"+d.inoutno+"</td>";
                    rows+="<td>"+d.username+"</td>";
                    rows+="<td>"+d.people+"</td>";
                    rows+="<td>"+d.inout+"</td>";
                    rows+="<td>"+d.ctime+"</td>";
                    rows+="</tr>";
                    $("#show").append(rows);
     });
                },
                "json");
        });
      });
 </script>
  </head>
 
  <body>
        <table border="1px">
        <tr>
           <input type="hidden" id="prePage">
     <input type="hidden" id="nextPage">
           <td class="a">入出库单编号</td>
           <td><input type="text" name="no" id="no"></td>
           <td class="a">入/出库</td>
           <td><input type="radio" name="a" value="入库" id="a">入库
               <input type="radio" name="a" value="出库" id="a">出库
           </td>
        </tr>
        <tr>
           <td class="a">经办人</td>
           <td><input type="text" name="people" id="people"></td>
           <td class="a">日期</td>
           <td><input type="text" name="date" id="date"></td>
        </tr>
        <tr>
           <td colspan="4" align="center"><input type="button" value="查询" id="query">
           <input type="submit" value="清空">
           <input type="button" id="pre" value="上一页">
     <input type="button" id="next" value="下一页">
     <span id="total"></span></td>
        </tr>
     </table>
     <table border="1px" id="show">
         <tr>
           <td>入出库单编号</td>
           <td>客户名称</td>
           <td>经办人</td>
           <td>入/出库</td>
           <td>操作时间</td>
           <td>操作</td>
         </tr>
                  </table>
  </body>
</html>

DAO:

public class InOutPageDao extends BaseDao {
 public List<InOut> findCusinfosByPageNo(InOut condition,PageUtitily<InOut> page) {
  List<InOut> list =new ArrayList<InOut>();
  String select="select * from inout where 1=1";
  StringBuilder sb = new StringBuilder(select);
  List<Object> params = new ArrayList<Object>();
  if(condition!=null){
   if(condition.getInoutno()!=null&& !"".equals(condition.getInoutno())){
   sb.append(" AND INOUTNO LIKE ?");
   params.add("%"+condition.getInoutno()+"%");
  }
      if(condition.getPeople()!=null &&!"".equals(condition.getPeople())){
       sb.append(" AND PEOPLE LIKE ?");
       params.add("%"+condition.getPeople()+"%");
  }
  }
  params.add(page.getStartRecord());
  params.add(page.getEndRecord());
  ResultSet rs = this.executeQueryForPage(sb.toString(), params);
  try {
   while(rs.next()){
     InOut cus=new InOut();
     cus.setInoutno(rs.getString("INOUTNO"));
     cus.setUsername(rs.getString("USERNAME"));
     cus.setPeople(rs.getString("PEOPLE"));
     cus.setInout(rs.getString("INOUT"));
     cus.setCtime(rs.getString("CTIME"));
    list.add(cus);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   this.closeAll();
  }
  return list;
 }
 public int findCusinfosCount(InOut condition) {
  String select ="SELECT * FROM INOUT C where 1=1";
  StringBuilder sb = new StringBuilder(select);
  List<Object> params = new ArrayList<Object>();
  if(condition!=null){
   if(condition.getInoutno()!=null&& !"".equals(condition.getInoutno())){
   sb.append(" AND INOUTNO LIKE ?");
   params.add("%"+condition.getInoutno()+"%");
  }
      if(condition.getPeople()!=null &&!"".equals(condition.getPeople())){
       sb.append(" AND PEOPLE LIKE ?");
       params.add("%"+condition.getPeople()+"%");
  }
  }
  return this.executeQueryForTatalCount(sb.toString(), params);
  
 }
}

实体类:

public class PageUtitily<T> {
  private List<T> records;
  private int curPage=1;//当前页码
  private int totalRecords;//符合条件的总记录数
  private int totalPages;//总页码数
  private int pageSize=3;//页面大小
  private int nextPage;//下一页
  private int prePage;//上一页
 
  private int startRecord;
  private int endRecord;
 
  public List<T> getRecords() {
  return records;
 }

public void setRecords(List<T> records) {
  this.records = records;
 }

public int getPageSize() {
  return pageSize;
 }

public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }

public int getCurPage() {
  return curPage;
 }

public int getNextPage() {
  return nextPage;
 }

public int getPrePage() {
  return prePage;
 }

public int getStartRecord() {
  return startRecord;
 }

public int getEndRecord() {
  return endRecord;
 }
 
 public PageUtitily(int pageNo){
  this.curPage=pageNo;
  this.startRecord=(this.curPage-1)*pageSize+1;
  this.endRecord=this.curPage*pageSize;
  this.prePage=this.curPage-1;
  if(this.prePage<=0){
   this.prePage=1;
  }
 }
 
 public void setTotalRecords(int totalRecords) {
  this.totalRecords = totalRecords;
  //计算总页码
  this.totalPages=this.totalRecords%pageSize==0?this.totalRecords/this.pageSize:this.totalRecords/this.pageSize+1;
  
  //计算下一页
  this.nextPage=this.curPage+1;
  if(this.nextPage>totalPages){
   this.nextPage=totalPages;
  }
 }
}

SERVICE:

public class InOutPageService {
 InOutPageDao iod=new InOutPageDao();
 public PageUtitily<InOut> findCusOrderByPage(InOut condition,int pageNo) {
  PageUtitily<InOut> pageObj = new PageUtitily<InOut>(pageNo);
  pageObj.setTotalRecords(iod.findCusinfosCount(condition));
  
  List<InOut> list = iod.findCusinfosByPageNo(condition, pageObj);
  pageObj.setRecords(list);
  return pageObj;
 }

}

SERVLET:

public class InOutPageServlet extends HttpServlet {
    InOutPageService iops=new InOutPageService();
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  doPost(req, resp);
 }

@Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  req.setCharacterEncoding("utf-8");
   String inoutno=req.getParameter("inoutno");
    String inout=req.getParameter("a");
    String people=req.getParameter("people");
    String ctime=req.getParameter("date");
   
          String curPage=req.getParameter("pageNo");
          if(curPage==null||"".equals(curPage)){
           curPage="1";
          }
    InOut io=new InOut(inoutno, people, inout, ctime);
    PageUtitily<InOut> page=iops.findCusOrderByPage(io, Integer.valueOf(curPage));
    JSONObject array=JSONObject.fromObject(page);
    resp.setContentType("text/html;charset=utf-8");
    PrintWriter out=resp.getWriter();
    out.print(array.toString());
    out.close();
 }
}

时间: 2024-08-09 19:21:58

POS管理系统之出入库单分页查询的相关文章

POS管理系统之供应商查询

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>      <title>My JSP 'LoginServlet.jsp'

分页查询的实现原理

1:接着上次写的图书管理系统:http://www.cnblogs.com/biehongli/p/6445803.html 这次新增了分页查询: 2:为什么会用到分页呢,因为列表内容太多了,所以使用分页进行显示. 分页的核心就是计算每页多少记录和总页数以及第几页. 3:首先先写如何计算每页多少记录和第几页,依旧在BookDao.java和BookDaoImpl.java中继续增加方法 在计算每页多少记录和第几页的后台核心代码如下所示: //第二步书写sql语句     String sql="

mssql数据库分页查询效率的一次体会

这几天在一个项目,合同管理系统(是对老系统的升级和改造,老系统是VS2008做的),由于数据库的表是项目组根据老系统的数据库建的,所以在查询的适合我就需要自己创建视图来完成多表的查询,起初我是读取项目组成员建好的视图,里面有7张表,其中还包含视图,由于视图中join视图是不支持索引的,所以在查询第一页的时候(每一页20条数据,总共数据量是10W条左右),耗时800毫秒,但是 当row_number达到上千的时候,基本查询要6秒以上,每点击下一页,耗时会增加十几毫秒,到40000条也就是中间的时候

springmvc 分页查询的简单实现

目前较常用的分页实现办法有两种: 1.每次翻页都修改SQL,向SQL传入相关参数去数据库实时查出该页的数据并显示. 2.查出数据库某张表的全部数据,再通过在业务逻辑里面进行处理去取得某些数据并显示. 对于数据量并不大的简单的管理系统而言,第一种实现方法相对来说容易使用较少的代码实现分页这一功能,本文也正是为大家介绍这种方法: 代码片段: 1,Page.java package com.cm.contract.common; import org.apache.commons.lang.Strin

.net通用CMS快速开发框架——问题:Dapper通用的多表联合分页查询怎么破?

最近在弄一个东东,类似那种CMS的后台管理系统,方便作为其它项目的初始化框架用的. 现在遇到个问题,如标题所示:Dapper通用的多表联合分页查询怎么破? 单表的话很简单就可以实现,多表不通用的话也可以很方便的实现,那么如果多表通用的话,怎么办呢? 难道只能通过拼接sql或者使用存储过程吗?我先来展示下我的实现方式,希望你有更好的方式,然后同我分享一下,以便解决我的困扰. 技术选型:MVC5.Mysql.Dapper.Autofac.Layui.阿里巴巴矢量库.T4(后面补上). 我选择的都是轻

Oracle分页查询

一.利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行.经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然. SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM XXX t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731',

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo