Java中实现DataTable工具类,并利用其实现简单分页控件。
来源:互联网 发布:js实现视频播放 编辑:程序博客网 时间:2024/05/22 03:30
具体工具类代码,请见我上一个博客。
一、工具类的使用
1.1 DataTable 工具类的使用
1.1.1 DataTable简单解析
顾名思义,DataTable其实就是一张虚拟数据表,用于存储由数据库select出来的数据。
支持多表查询,以及不同数据库查询数据表的连接。
DataTable 其实 就是一个List,数据表包含许多行,所以我们List定义为DataRow
而DataRow 又会包含很多列: DataColumn(键值对)
现在简单画一个图示:
DataColumn 数据表DataTable 数据行DataRow 数据列/数据单元 DataColumn
1.1.2 简单查询使用说明(简单查询,内连接关联查询)
例:现在我们有两张关系表(父、子) :news为newsType 字表
我们利用DataTable做一次查询
查询结果为:
其中DataTable.outTable(dt);为 封装在DataTable类中的一个静态方法,可以输出一个数据表对象,具体请自己参考代码。
1.1.3 双数据库查询(用于双数据库关联查询)
由于我们会经常操作双数据库,也会 常常遇到关联字段查询问题,所以DataTable中 封装了一个用于数据表连接的静态方法。
以sql server 2005 中案件表CaseView以及Oracle数据库中卷宗考评为例。
两表有一公共字段为案件编号,在2005中为id ,在oracle中为 ajbh。
现在写一查询将两数据库中表合一。
其中 连接的具体方法详情,请大家自己去看工具类中方法定义。
1.1.4 页面中DataTable的使用
以卷宗管理界面为例:
我们对于Action中获取DataTable代码不说,单独看看前台如何使用:
Eval()方法用于输出一行中对应某列来的值,具体 方法 请 大家参考工具类
1.2 分页工具类PageUtil的使用
1.2.1 P ageUtil简单解析
PageUtil 类包含许多方法,我这里通过一个例子告诉大家如何使用即可,想知道内部实行的同学自己去分析代码,注释很完善。
1.2.2 如何分页?
界面展示 :
对应Action:
核心代码1:
PageUtil page = new PageUtil(10); // 分页控件,首先定义其页面大小
核心代码2:
前台页面使用:
核心界面部分:
对应工具类中方法,有兴趣的 朋友就自己去看吧:
package cdu.yas.xykps.util;/** * @功能描述 通用分页工具类 * @可能的错误 * @作者 叶小钗 * @修改说明 * @修改人 */public class PageUtil {DataTable dt;// 要返回的数据表int allRow;// 数据表总行数,总记录数int totalPage;// 一共多少页int pageIndex;// 当前页索引,当前第几页// 基础数据设置int pageSize; // 每页记录数,每页有多少数据行boolean isFirstPage;// 当前是否第一页boolean isLastPage;// 当前是否最后一页// 人性化设置String firstPageText = "首页";// 首页名称设置String lastPageText = "尾页";// 尾页名称设置String prevPageText = "上一页";// 上一页名字设置String nextPageText = "下一页";// 下一页名字设置public PageUtil() {this.pageSize = 10;this.pageIndex = 1;}public PageUtil(int pageSize) {this.pageSize = pageSize;this.pageIndex = 1;}public PageUtil(String firstPageText, String prevPageText,String nextPageText, String lastPageText, int pageSize) {this.pageIndex = 1;this.pageSize = pageSize;this.firstPageText = firstPageText;this.lastPageText = lastPageText;this.prevPageText = prevPageText;this.nextPageText = nextPageText;}// 初始化public void init() {totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow/ pageSize + 1;this.isFirstPage = isFirstPage();this.isLastPage = isLastPage();}// 判断当前是否第一页private boolean isFirstPage() {return pageIndex == 1;}// 判断当前是否最后一页private boolean isLastPage() {return pageIndex == totalPage;}// 最终返回菜单public String getToolBar(String urlName, String objectName) {String o = objectName;init();String s = "<table width='100%' border='0' align='center'cellpadding='0' cellspacing='0' class='right-font08'><tr><td width='50%'>共 <span class='right-text09'>"+ totalPage+ "</span> 页 | 第 <span class='right-text09'> "+ pageIndex + "</span> 页</td><td width='49%' align='right'>[ ";if (isFirstPage)s += firstPageText + " | " + prevPageText + " | ";else {s += " <a class='right-font08' href=" + urlName + "?" + o+ ".pageIndex=1 >" + firstPageText + "</a> | ";s += " <a class='right-font08' href=" + urlName + "?" + o+ ".pageIndex=" + (pageIndex - 1) + ">" + prevPageText+ "</a> | ";}if (isLastPage)s += nextPageText + " | " + lastPageText + " ] </td></tr></table>";else {s += " <a class='right-font08' href=" + urlName + "?" + o+ ".pageIndex=" + (pageIndex + 1) + " >" + nextPageText+ "</a> | ";s += " <a class='right-font08' href=" + urlName + "?" + o+ ".pageIndex=" + totalPage + ">" + lastPageText+ "</a> ] </td></tr></table>";}return s;}// 最终返回菜单public String getToolBar1(String urlName, String objectName) {String o = objectName;init();String s = "共 " + allRow + " 条记录 共 " + totalPage + " 页 当前第 "+ pageIndex + " 页 ";if (isFirstPage)s += firstPageText + " " + prevPageText + " ";else {s += " <a href=" + urlName + "?" + o + ".pageIndex=1 > "+ firstPageText + "</a> ";s += " <a href=" + urlName + "?" + o + ".pageIndex="+ (pageIndex - 1) + ">" + prevPageText + " </a> ";}if (isLastPage)s += nextPageText + " " + lastPageText + " ";else {s += " <a href=" + urlName + "?" + o + ".pageIndex="+ (pageIndex + 1) + " >" + nextPageText + "</a> ";s += " <a href=" + urlName + "?" + o + ".pageIndex=" + totalPage+ ">" + lastPageText + "</a> ";}return s;}// 最终返回菜单public String getTool(String urlName, String objectName, String id) {String o = objectName;init();String s = "<table width='100%' border='0' align='center'cellpadding='0' cellspacing='0' ><tr>";s += "<td width='55%' align='right'> ";if (isFirstPage)s += "[ " + prevPageText + " ] ";else {s += " [ <a class='right-font08' href=" + urlName + "?caseId=" + id+ "&" + o + ".pageIndex=" + (pageIndex - 1) + ">"+ prevPageText + "</a> ] ";}if (isLastPage)s += " [ " + nextPageText + " ] ";else {s += " [ <a class='right-font08' href=" + urlName + "?caseId=" + id+ "&" + o + ".pageIndex=" + (pageIndex + 1) + " > "+ nextPageText + "</a> ]";}s += "</td><td width='40%' align='right' >共 <span >" + totalPage+ "</span> 页 | 第 <span >" + pageIndex+ "</span> 页 </td><td width='5%' ></td>";s += "</tr></table>";return s;}// ///////// /////////////////////////////需要前台取的数据public DataTable getDt() {return dt;}public int getAllRow() {return allRow;}public int getTotalPage() {return totalPage;}public int getPageIndex() {return pageIndex;}public int getPageSize() {return pageSize;}public String getFirstPageText() {return firstPageText;}public String getLastPageText() {return lastPageText;}public String getPrevPageText() {return prevPageText;}public String getNextPageText() {return nextPageText;}public void setDt(DataTable dt) {this.dt = dt;}public void setAllRow(int allRow) {this.allRow = allRow;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public void setPageIndex(int pageIndex) {this.pageIndex = pageIndex;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public void setFirstPage(boolean isFirstPage) {this.isFirstPage = isFirstPage;}public void setLastPage(boolean isLastPage) {this.isLastPage = isLastPage;}public void setFirstPageText(String firstPageText) {this.firstPageText = firstPageText;}public void setLastPageText(String lastPageText) {this.lastPageText = lastPageText;}public void setPrevPageText(String prevPageText) {this.prevPageText = prevPageText;}public void setNextPageText(String nextPageText) {this.nextPageText = nextPageText;}//}
- Java中实现DataTable工具类,并利用其实现简单分页控件。
- asp.net 站内搜索功能的实现及利用datatable绑定数据并进行分页
- 利用数据库实现分页,并显示在Table中
- VS-利用AspNetPager控件实现真分页
- VS-利用GridView控件实现假分页
- 利用GridView控件实现分页效果
- 利用Repeater控件实现数据分页显示
- QML中ListView的深度订制,并利用其实现自定义ComboBox和TreeView
- java 利用poi 工具生成word表单 的简单实现
- struts2中分页简单实现
- ASP.NET中DataList控件和AspNetPager控件的组合使用并实现分页
- ASP.NET中DataList控件和AspNetPager控件的组合使用并实现分页
- java简单实现分页查询
- java后台简单分页实现
- dataTable实现服务器端分页(python)
- (jQuery)实现简单的分页控件
- 一种简单分页控件的实现
- ASP.NET 使用DataTable在Table中实现自定义分页
- cross_compile glibc for arm
- MyBatis是什么
- 编译和链接的区别
- 在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?
- 在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- Java中实现DataTable工具类,并利用其实现简单分页控件。
- 只言碎语总结,今后发展web前端,并分享两个项目难点解决方案。
- 工作四天的体会,公司就是公司和学校果然不同!!!
- 【jquery模仿net控件】简单的dropdownlist与datalist
- Linux下,“ORA-01031: insufficient privileges”的处理
- 【jquery模仿net控件】简单的datalist控件更新,及其简单应用
- 【jquery版.net控件—dropdownlist】附源码,欢迎大家指点、指正、拍砖!!!
- 【jquery仿dataList】应用之——模仿igoogle【定制化、拖动排序,最大化、分屏】
- 【jquery仿datalist的一个问题,求助】——设置每行显示几列,块状DIV的解决办法