具体工具类代码,请见我上一个博客。
一、工具类的使用
1.1 DataTable工具类的使用
1.1.1DataTable简单解析
顾名思义,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.1PageUtil简单解析
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 = "
共 " + totalPage + " 页 | 第 "+ pageIndex + " 页 | [ "; if (isFirstPage) s += firstPageText + " | " + prevPageText + " | "; else { s += " + ".pageIndex=1 >" + firstPageText + " | ";s += " + ".pageIndex=" + (pageIndex - 1) + ">" + prevPageText + " | ";} if (isLastPage) s += nextPageText + " | " + lastPageText + " ] |
else {
s += "
+ ".pageIndex=" + (pageIndex + 1) + " >" + nextPageText
+ "
| ";s += "
+ ".pageIndex=" + totalPage + ">" + lastPageText
+ "
] ";}
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 += " "
+ firstPageText + " ";
s += "
+ (pageIndex - 1) + ">" + prevPageText + "
";}
if (isLastPage)
s += nextPageText + " " + lastPageText + " ";
else {
s += "
+ (pageIndex + 1) + " >" + nextPageText + "
";s += "
+ ">" + lastPageText + "
";}
return s;
}
// 最终返回菜单
public String getTool(String urlName, String objectName, String id) {
String o = objectName;
init();
String s = "
s += "
";if (isFirstPage)
s += "[ " + prevPageText + " ] ";
else {
s += " [
+ "&" + o + ".pageIndex=" + (pageIndex - 1) + ">"
+ prevPageText + "
] ";}
if (isLastPage)
s += " [ " + nextPageText + " ] ";
else {
s += " [
+ "&" + o + ".pageIndex=" + (pageIndex + 1) + " > "
+ nextPageText + "
]";}
s += "
共 " + totalPage+ "
页 | 第 " + pageIndex+ "
页 ";s += "
";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用法_Java中实现DataTable工具类,并利用其实现简单分页控件。
发布评论