Extjs分页使用Java实现数据库数据查询

关于Ext分 页功能的实现。项目用的是js、Ext、servlet。下面贴下代码:


var obj = this;

var pageSize = 20;   //统计结果分页每一页显示数据条数

//在这里使用Store来创建一个类似于数据表的结构,因为需要远程获取数据,所以应该使用

//HttpProxy类,我是从后台读取的是json数据格式的数据,所以使用JsonReader来解析;

var proxy = new Ext.data.HttpProxy({

url:"com.test.check.servlets.QueryDetailServlet"

});

var statTime = Ext.data.Record.create([

{name:"rowNo",type:"string",mapping:"rowNo"},

{name:"gpsid",type:"string",mapping:"gpsid"},

{name:"policeName",type:"string",mapping:"policeName"}

]);

var reader = new Ext.data.JsonReader({

totalProperty:"count", //此处与后台json数据中相对应,为数据的总条数

root:"data"      //这里是后台json数据相对应

},statTime);

var store = new Ext.data.Store({

proxy:proxy,

reader:reader

});

//定义分页工具条

var bbarObj = new Ext.PagingToolbar({

pageSize: pageSize,

store: store,

width: 300,

displayInfo: true,      //该属性为需要显示分页信息是设置

//这里的数字会被分页时候的显示数据条数所自动替换显示

displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',

emptyMsg: "没有记录",

prependButtons: true

});

在我的项目中使用的是GridPanel来进行显示数据表,所以定义如下:

var grid = new Ext.grid.GridPanel({

store: store,

columns: [

{header:'序号',width: 33, sortable: true,dataIndex:'rowNo',align:'center'},

{id:'gpsid',header:'GPS编号',width: 85, sortable: true,dataIndex:'gpsid',align:'center'},

{header:'警员名称',width: 90, sortable: true,dataIndex:'policeName',align:'center'}

],

region:'center',

stripeRows: true,

title:'统计表',

autoHeight:true,

width:302,

autoScroll:true,

loadMask:true,

stateful: true,

stateId: 'grid',

columnLines:true,

bbar:bbarObj   //将分页工具栏添加到GridPanel上

});

//在以下方法中向后台传送需要的参数,在后台servlet中可以使用

//request.getParameter("");方法来获取参数值;

store.on('beforeload',function(){

store.baseParams={

code: code,

timeType: timeType,

timeValue: timeValue

}

});

//将数据载入,这里参数为分页参数,会根据分页时候自动传送后台

//也是使用request.getParameter("")获取

store.reload({

params:{

start:0,

limit:pageSize

}

});

duty.leftPanel.add(grid); //将GridPanel添加到我项目中使用的左侧显示栏

duty.leftPanel.doLayout();

duty.leftPanel.expand();  //左侧显示栏滑出

 后台servlet获取前台传输的参数:


response.setContentType("text/xml;charset=GBK");

String orgId = request.getParameter("code");

String rangeType = request.getParameter("timeType");

String rangeValue = request.getParameter("timeValue");

String start  = request.getParameter("start");

String limit = request.getParameter("limit");

StatService ss = new StatService();

String json = ss.getStatByOrganization(orgId, rangeType, rangeValue, start, limit);

PrintWriter out = response.getWriter();

out.write(json);

out.flush();

out.close();

  下面讲以下后台将从数据库查询的数据组织成前台需要的格式的json数据串


StringBuffer json = new StringBuffer();

String jsonData = "";

......

//这里用前台传来的参数进行数据库分页查询

int startNum = new Integer(start).intValue();

int limitNum = new Integer(limit).intValue();

startNum = startNum + 1;

limitNum = startNum + limitNum;

......

rs = ps.executeQuery();

//这里的count即是前台创建的数据格式中的数据总数名称,与之对应,data同样

json.append("{count:" + count + ",data:[{");

int i = startNum - 1;  //该变量用来设置数据显示序号

while(rs.next()){

i = i + 1;

//这里的rowNo与前台配置的数据字段名称想对应,下面同样

json.append("rowNo:'" + i + "',");

String gpsId = rs.getString("GPSID");

json.append("gpsid:'" + gpsId + "',");

String policeName = rs.getString("CALLNO");

json.append("policeName:'" + policeName + "',");

json.append("},{");

}

jsonData = json.substring(0, json.length()-2);

jsonData = jsonData + "]}";

//组成的json数据格式应该是:

//{count:count,data:[{rowNo:rowNo,gpsId:gpsId,policeName:policeName},....]}

  就这样完成了前台的数据查询交互;

  希望我的例子对各位有用。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-02 11:41:08

Extjs分页使用Java实现数据库数据查询的相关文章

如何在servlet里面设置extjs分页时拿到数据库查询出来数据总数?

问题描述 如何在servlet里面设置extjs分页时拿到数据库查询出来数据总数?最好能给个代码参考下,谢谢

Java处理数据库统计查询并发操作问题

问题描述 现在我遇到了一个问题:为了生成一个序号,格式例如为:ES100001(ES:特征位,11:代表现在的年份2010年后两位,0001:表示数据库统计查询后的数字加1).但是这样就遇到一个问题,比如A和B同一时间同步提交一个表单,就会生成同样的序号,如(ES100002),请问大伙儿有什么好的解决办法?我的伪代码是这样的://数据库查询intcount=Query.doQuery(Long.class,"selectcount(*)fromTableAwherecondition1=1&q

java中excel数据写入数据库

问题描述 java中excel数据写入数据库 java中excel数据写入数据库 : 通过上传excel同时把里面数据写入数据库.struts框架 源码,急用 解决方案 http://www.cnblogs.com/hongten/archive/2012/02/22/java2poi.html 解决方案二: 需要导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支

Java插入修改删除数据库数据的基本方法_java

Java数据库之插入记录 插入数据表记录有3种方案 一.使用Statement对象 实现插入数据表记录的SQL语句的语法是: insert into 表名(字段名1,字段名2,--)value (字段值1,字段值2,--) 例如:   insert into ksInfo(考号,姓名,成绩,地址,简历)value('200701','张大卫'534,'上海欧阳路218弄4-1202','') 实现同样功能的Java程序代码是: sql = "insert intoksIno(考号,姓名,成绩,地

extjs怎样将从oracle数据库获取到的数据进行分页显示?

问题描述 extjs怎样将从oracle数据库获取到的数据进行分页显示? extjs怎样将从oracle数据库获取到的数据进行分页显示? 解决方案 前台传回是第几页数据,后台查询结果返回OK 解决方案二: rownum between 1 and n 解决方案三: 是用jsp之类的东西读oracle数据库,然后生成extjs需要的json格式的数据返回给extjs加载,extjs无法直接加载oracle数据 http://blog.csdn.net/yizhiduxiu11/article/de

在Java的Hibernate框架中对数据库数据进行查询操作_java

Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性. HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作. 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势. 都像SELECT,FROM和WHERE等关键字不区分大小写,但如表名和列名的属性是区分在HQL敏感. FROM 语句使用

JAVA WEB开发从数据库中查询到的数据用list怎么在JSP页面整齐的显示出来,请写代码,谢谢

问题描述 JAVA WEB开发从数据库中查询到的数据用list怎么在JSP页面整齐的显示出来,请写代码,谢谢 JAVA WEB开发从数据库中查询到的数据用list怎么在JSP页面整齐的显示出来,请写代码,谢谢 解决方案 标准标签 页面头部引入<@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" /> <c:forEach items="${list}" var=

java实现连接mysql数据库单元测试查询数据的实例代码_java

1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test; 具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 开发实例"> 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: Us

Java连接SQL Server2008查询数据库数据,如何显示查询结果到一个列表

问题描述 本人用Java已连接到SQLServer2008,现在想通过Java查询SQLServer中的数据,并显示在一个表中请大神帮忙 解决方案 解决方案二:写个方法,一个jsp页面就搞定.解决方案三:个人觉得还是一样的,查询的sql放到集合里面,然后页面集合显示解决方案四:既然已经连接上了数据库,查询数据就很简单了,直接调用jdbc的查询方法来查询,将结果用集合存放,再传到你要的表中,一步步来啊.