欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

easyui分页时,总页数出错

程序员文章站 2022-04-28 14:00:39
MyBatis用easyui写后台分页代码时,出现翻页后显示总页数错误 可能原因在于后台mappers.xml里的sql语句错误 去掉limit语句 controller的代码如下 因为前台easyui传入的数据start在变,变化前的sql语句为 可以查询出总记录数但start变化后 无法查询出总 ......

mybatis用easyui写后台分页代码时,出现翻页后显示总页数错误

easyui分页时,总页数出错

easyui分页时,总页数出错

可能原因在于后台mappers.xml里的sql语句错误

<select id="getproducttotal" parametertype="map" resulttype="long">
  select count(*) from t_product
  <where>
    <if test="name!=null and name!=''">
      and name like #{name}
    </if>
  </where>
  <if test="start!=null and size!=null">
    limit #{start},#{size}
  </if>
</select>

去掉limit语句

<select id="getproducttotal" parametertype="map" resulttype="long">
  select count(*) from t_product
  <where>
    <if test="name!=null and name!=''">
      and name like #{name}
    </if>
  </where>
</select>

controller的代码如下

@requestmapping("/list")
public string list(@requestparam(value="page",required=false)string page,@requestparam(value="rows",required=false)string rows,product product,httpservletresponse response)throws exception{
  pagebean pagebean = new pagebean(integer.parseint(page),integer.parseint(rows));
  map<string,object> map = new hashmap<string,object>();
  map.put("name", stringutil.formatlike(product.getname()));
  map.put("start", pagebean.getstart());
  map.put("size", pagebean.getpagesize());
  list<product> productlist = productservice.productlist(map);
  long total = productservice.getproducttotal(map);
  jsonobject result=new jsonobject();
  jsonconfig jsonconfig=new jsonconfig();
  jsonconfig.setexcludes(new string[]{"orderproductlist"});
  jsonconfig.registerjsonvalueprocessor(java.util.date.class, new datejsonvalueprocessor("yyyy-mm-dd"));
  jsonconfig.registerjsonvalueprocessor(productbigtype.class,new objectjsonvalueprocessor(new string[]{"id","name"}, productbigtype.class));
  jsonconfig.registerjsonvalueprocessor(productsmalltype.class,new objectjsonvalueprocessor(new string[]{"id","name"}, productsmalltype.class));
  jsonarray jsonarray=jsonarray.fromobject(productlist,jsonconfig);
  result.put("rows", jsonarray);
  result.put("total", total);
  responseutil.write(response, result);
  return null;
}

因为前台easyui传入的数据start在变,变化前的sql语句为

select count(*) from t_product limit 0,10

可以查询出总记录数
但start变化后

select count(*) from t_user limit 10,10

无法查询出总记录数,所以导致出错!