Java中实现DataTable工具类,并利用其实现简单分页控件。

java

具体工具类代码,请见我上一个博客。

一、工具类的使用

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 PageUtil简单解析

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工具类,并利用其实现简单分页控件。 的全部内容, 来源链接: utcz.com/z/391851.html

回到顶部