mysql 较为高效的分页

直接上代码

DaoImpl:

/**

* 开发转让页面展示 ,查询搜索数据,而且分页展示

* @param zrdp 搜索条件封装对象

* @return

*/

@SuppressWarnings("unchecked")

public List<Zrdpxx>  showAllZrdpxxPageindex(Zrdpxx zrdp,int pageindex,String keys) {

String
sql ="select * from zrdpxx where dpxx_htaiztai = 2";

if(zrdp!=null){

if(zrdp.getDpxxId()!=null&&!zrdp.getDpxxId().equals("")){

sql+=" and dpxx_id =" +zrdp.getDpxxId();

}

if(zrdp.getDpxxQyu()!=null&&!zrdp.getDpxxQyu().equals("-选择区域-")){

sql+=" and dpxx_qyu = ‘"+zrdp.getDpxxQyu()+"‘";

}

if(zrdp.getDpxxPyetai()!=null&&!zrdp.getDpxxPyetai().equals("")){

sql+=" and dpxx_pyetai = ‘"+zrdp.getDpxxPyetai()+"‘";

}

if(zrdp.getDpxxZyetai()!=null&&!zrdp.getDpxxZyetai().equals("0")&&!zrdp.getDpxxZyetai().equals("null")){

sql+=" and dpxx_zyetai = ‘"+zrdp.getDpxxZyetai()+"‘";

}

if(zrdp.getBigmji()!=0&&zrdp.getSmlmj()!=-1){

sql += " and dpxx_mji between "+zrdp.getSmlmj()+" and " +zrdp.getBigmji();

}

//開始时间和结束时间均有值

if(zrdp.getBeginTime()!=null&&!zrdp.getBeginTime().equals("")&&zrdp.getEndTimes()!=null&&!zrdp.getEndTimes().equals("null")){

sql +=" and dpxx_fbusjian  between ‘"+zrdp.getBeginTime()+"‘ and ‘"+zrdp.getEndTimes()+"‘";

}

//仅仅有開始时间

if(zrdp.getBeginTime()!=null&&!zrdp.getBeginTime().equals("")&&zrdp.getEndTimes()==null){

sql +=" and dpxx_fbusjian  between ‘"+zrdp.getBeginTime()+"‘ and now()";

}

if(!("标题 地址 电话").equals(keys)){

sql +=" and (dpxx_bti like ‘%"+keys+"%‘ or tel like ‘%"+keys+"%‘ or dpxx_jtidzhi like ‘%"+keys+"%‘)";

}

sql +=" order by dpxx_fbusjian desc";

}

return getSession().createSQLQuery(sql).addEntity(Zrdpxx.class).setFirstResult((pageindex-1)*20).setMaxResults(20).list();

}

// public int getallzrdpcounts() {

// Object oo = getSession().createSQLQuery("select count(dpxx_id) from zrdpxx where dpxx_htaiztai =2").uniqueResult();

// return Integer.parseInt(oo.toString());

// }

//

/**

* 开发转让页面展示 ,查询满足条件的开发转让店铺信息

* @param zrdp 搜索条件封装对象

* @return

*/

@SuppressWarnings("unchecked")

public int showAllZrdpxx(Zrdpxx zrdp,String keys) {

String
sql ="select count(dpxx_id) from zrdpxx where dpxx_htaiztai = 2";

if(zrdp!=null){

if(zrdp.getDpxxId()!=null&&!zrdp.getDpxxId().equals("")){

sql+=" and dpxx_id =" +zrdp.getDpxxId();

}

if(zrdp.getDpxxQyu()!=null&&!zrdp.getDpxxQyu().equals("-选择区域-")){

sql+=" and dpxx_qyu = ‘"+zrdp.getDpxxQyu()+"‘";

}

if(zrdp.getDpxxPyetai()!=null&&!zrdp.getDpxxPyetai().equals("")){

sql+=" and dpxx_pyetai = ‘"+zrdp.getDpxxPyetai()+"‘";

}

if(zrdp.getDpxxZyetai()!=null&&!zrdp.getDpxxZyetai().equals("0")&&!zrdp.getDpxxZyetai().equals("null")){

sql+=" and dpxx_zyetai = ‘"+zrdp.getDpxxZyetai()+"‘";

}

if(zrdp.getBigmji()!=0&&zrdp.getSmlmj()!=-1){

sql += " and dpxx_mji between "+zrdp.getSmlmj()+" and " +zrdp.getBigmji();

}

//開始时间和结束时间均有值

if(zrdp.getBeginTime()!=null&&!zrdp.getBeginTime().equals("")&&zrdp.getEndTimes()!=null&&!zrdp.getEndTimes().equals("null")){

sql +=" and dpxx_fbusjian  between ‘"+zrdp.getBeginTime()+"‘ and ‘"+zrdp.getEndTimes()+"‘";

}

//仅仅有開始时间

if(zrdp.getBeginTime()!=null&&!zrdp.getBeginTime().equals("")&&zrdp.getEndTimes()==null){

sql +=" and dpxx_fbusjian  between ‘"+zrdp.getBeginTime()+"‘ and now()";

}

if(!("标题 地址 电话").equals(keys)){

sql +=" and (dpxx_bti like ‘%"+keys+"%‘ or tel like ‘%"+keys+"%‘ or dpxx_jtidzhi like ‘%"+keys+"%‘)";

}

}

Object oo =  getSession().createSQLQuery(sql).uniqueResult();

return Integer.parseInt(oo.toString());

}

Action:

/**

* 开发转让展示 ,追加对象搜索

* @return 集合

*/

public String getZrdpxxByzr(){

if(pid==1){

allcounts = zrDao.showAllZrdpxx(zrdpxx,keys);

}

forkaifazrlist = zrDao.showAllZrdpxxPageindex(zrdpxx, pid, keys);

kfmap.put("allkaifazr",allcounts);

kfmap.put("allkaifazrPageindex", forkaifazrlist);

if(forkaifazrlist!=null){

return "showallsuc";

}

return "fail";

}

js:

function showws(){

zrshopids =$.trim($("#txt_infoid").val());

var isnums = isNaN(zrshopids);

var yanzhengs = /^\s*$/;

var isspaces =yanzhengs.test(zrshopids);

if(isnums){

zrshopids=-1;

}

if(isspaces){

zrshopids = "";

}

if($("#txt_infoid").val().indexOf(".")!=-1){

alert("亲。请输入正确的店铺ID!");

}

else{

$("#showtable tr:not(:first)").remove();

$("#bottompage").html("");

$.post("zrAction!getallDpxx.action",{"pid":pageindex,"zrdpxx.dpxxPyetai":$("#ddl_yetaicate").val().substring(3,7),"zrdpxx.dpxxHtaiztai":$("#ddl_after").val(),"zrdpxx.dpxxZyetai":$("#ddl_yetai").val(),"zrdpxx.dpxxQtaiztai":$("#ddl_before").val(),"zrdpxx.dpxxHtaiztai":$("#ddl_after").val(),"zrdpxx.dpxxSfouzdin":$("#istopno").val(),"tel":$.trim($("#txt_key").val()),"dpidsss":zrshopids,"showwhotel":$("#showwhotel").val()},

function(data){

if(data["zrdxpxxPageindexCount"].length<=0){

alert("没有符合当前条件的数据!");

}

else{

$.each(data["zrdxpxxPageindexCount"],function(i,list){

$tr=$("<tr></tr>");

$td12 =$(" <td align=‘center‘ valign=‘top‘ style=‘border-right:0;‘><input type=‘checkbox‘ name =‘row_checkbox‘ id =‘checkDo‘ value=‘"+list.dpxxId+"‘/></td>");

$td1=$("<td align=‘center‘ valign=‘top‘><a href=‘TransferManager24.1.jsp?dpidsss="+list.dpxxId+"‘ target=‘_blank‘>"+list.dpxxId+"</a></td>");

$td2 =$("<td align=‘center‘ valign=‘top‘>"+list.dpxxFbusjian.substring(0,10)+"</td>");

switch(list.dpxxXxilyuan){

case 1:

$td3 =$("<td align=‘center‘ valign=‘top‘>客户</td>");

break;

case 4:

$td3 =$("<td align=‘center‘ valign=‘top‘>外网</td>");

break;

case 2:

$td3 =$("<td align=‘center‘ valign=‘top‘>报纸</td>");

break;

case 3:

$td3 =$("<td align=‘center‘ valign=‘top‘>扫街</td>");

break;

case 5:

$td3 =$("<td align=‘center‘ valign=‘top‘>其它</td>");

break;

}

$td4 =$("<td align=‘center‘ valign=‘top‘>"+list.dpxxZyetai+"</td>");

$td5 =$("<td align=‘center‘ valign=‘top‘>"+list.dpxxQyu+"</td>");

$td7 =$("<td align=‘center‘ valign=‘top‘>"+list.dpxxBti+"</td>");

$td8 =$("<td align=‘center‘ valign=‘top‘>"+list.dpxxJtidzhi+"</td>");

$td13=$("<td align=‘center‘ valign=‘top‘>"+list.mytel+"</td>");

if(list.dpxxSfouzdin==1){

$td9 =$("<td align=‘center‘ valign=‘top‘>是</td>");

}

if(list.dpxxSfouzdin==2){

$td9 =$("<td align=‘center‘ valign=‘top‘>否</td>");

}

if(list.dpxxQtaiztai==1){

$td10 =$("<td align=‘center‘ valign=‘top‘>显示</td>");

}

if(list.dpxxQtaiztai==2){

$td10 =$("<td align=‘center‘ valign=‘top‘>不显示</td>");

}

switch(list.dpxxHtaiztai){

case 1:

$td11 =$("<td align=‘center‘ valign=‘top‘>屏蔽</td>");

break;

case 2:

$td11 =$("<td align=‘center‘ valign=‘top‘ style=‘color:green‘>开发</td>");

break;

case 3:

$td11 =$("<td align=‘center‘ valign=‘top‘ style=‘color:blue‘>重点</td>");

break;

case 4:

$td11 =$("<td align=‘center‘ valign=‘top‘ style =‘color:red‘>售后</td>");

break;

case 5:

$td11 =$("<td align=‘center‘ valign=‘top‘ style=‘color:#A757A8‘>案例</td>");

break;

}

$tr.append($td1).append($td2).append($td3).append($td4).append($td5).append($td7).append($td8).append($td13).append($td9).append($td10).append($td11).append($td12);

$("#showtable").append($tr);

});

pagesize = data["zrdxpxxAllCount"]%maxresult==0?

parseInt(data["zrdxpxxAllCount"]/maxresult):parseInt(data["zrdxpxxAllCount"]/maxresult)+1;

var $uppage = $("<a href=‘javascript:go(true)‘><<上一页&nbsp;&nbsp&nbsp;&nbsp</a>");

var $span =$("<span style=‘font-size:12px‘>共"+data["zrdxpxxAllCount"]+"条&nbsp;&nbsp第"+pageindex+"页&nbsp;&nbsp总"+pagesize+"页</span>");

var $downpage =$("<a href=‘javascript:go(false)‘>&nbsp;&nbsp&nbsp;&nbsp下一页>>&nbsp;&nbsp&nbsp;&nbsp</a>");

var $select = $("<select onchange=‘javascript:gotos()‘ id=‘gotosid‘></select>");

for(var i = 1;i<=pagesize;i++){

$select.append("<option value="+i+">第"+i+"页</option>");

}

$("#bottompage").append($uppage).append($span).append($downpage).append($select);

$("#gotosid").find("option[value=‘"+pageindex+"‘]").attr("selected","selected");

}

});

}

}

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTU5ODUyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

时间: 2024-08-07 21:19:12

mysql 较为高效的分页的相关文章

MySQL 百万级分页优化(Mysql千万级快速分页)

以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 : SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 : SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 也许耗费几十秒 网上很多优化的方法是这样的: SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIM

转Oracle、MySql、SQLServer 数据分页查询

最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:其实的索引 * pageSize:每页显示的记录数 */ select o.* from (sql) o limit firstIndex,pageSize

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询 1.demo简介 这是一个由ExtJs4.2,Mysql5.5 ,Struts2,Hibernate3.3构成的简单web项目,本人由于最近在研究ExtJs所以特意做了这个Demo,方便有需要的同学查看,也给自己留下学习笔记吧.需要特别说明我这里并没有整合Struts,Hibernate,这两个工具是独立运行的.转载请注明:http://blog.csdn.net/qiuzhping/article/details/

Oracle、MySql、SQLServer 数据分页查询

Oracle.MySql.SQLServer 数据分页查询 摘自:http://www.cnblogs.com/wangyong/p/3396333.html 近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:

Oracle、MySql、SQLServer数据分页查询

看过此博文后Oracle.MySql.SQLServer 数据分页查询,在根据公司的RegionRes表格做出了 SQLserver的分页查询语句: SELECT DISTINCT TOP 500 rr.ID AS id ,rr.strName AS name ,rr.nType AS res_type ,rr.nRegID AS region_id ,rr.strChanName AS channel_name ,rr.nChanNum AS channel ,rr.nSortID AS so

如何优化Mysql千万级快速分页

看例子: 数 据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是逐渐,vtype是tinyint,vtype是索引.这是一个基本的新闻系统的简单模型.现在往里面填充数据,填充10万篇新闻. 最后collect 为 10万条记录,数据库表占用硬盘1.6G.OK ,看下面这条sql语句: select id,title from collect limit 1000,10; 很快:基本上0.01秒就OK,

mysql优化笔记之分页

过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O(∩_∩)O~ 以下采用常规分页和网上大伙都提倡的做法: offset较小时: 常规做法 可以看出当limit offset较小时分页用常规做法的执行时间是0.01s. 当limit offset较小时采用另一种特殊的方法,在这种情况下,确实是符合大伙的推荐做法,即在 limit offset 较小

Mysql与Oracle的分页查询比较

MySql分页查询语句 下列查询语句中m代表行数的索引默认从0开始类似于pl/sql中的游标0表示从第一条开始n表示向后查询多少条数据. 例如: select * from emp limit 2,3表示查询第三条数据到第六条数据(包前不包后)也就是第三条数据包括第三条数据不包括第六条数据 也就是 3, 4,5条记录 select * from buss_stu_info limit m,n; Oracle数据库分页查询 一层分页查询: 及时数据量足够大几乎也不会受到影响查询速率足够快,一般在写

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将