zoukankan      html  css  js  c++  java
  • Java中实现DataTable工具类,并利用其实现简单分页控件。

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

    一、工具类的使用

    1.1 DataTable 工具类的使用

    1.1.1 DataTable简单解析

    顾名思义,DataTable其实就是一张虚拟数据表,用于存储由数据库select出来的数据。

    支持多表查询,以及不同数据库查询数据表的连接。

    DataTable 其实 就是一个List,数据表包含许多行,所以我们List定义为DataRow

    DataRow 又会包含很多列: DataColumn(键值对)

    现在简单画一个图示:

     

    DataColumn

     

    数据表DataTable

    数据行DataRow

    数据列/数据单元

    DataColumn

    1.1.2 简单查询使用说明(简单查询,内连接关联查询)

    例:现在我们有两张关系表(父、子) :newsnewsType 字表

    我们利用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;
    	}
    
    	//
    
    }
    

     

     

     

     

  • 相关阅读:
    Jenkins, How to Start, Stop or Restart your Instance
    Windows Batch: Remove file extension
    download web folder using wget
    Mac OS 下 控制台的代理设定
    Elasticsearch 配置IP白名单
    Elasticsearch 开启安全认证
    Redis安装手册
    laravel 使用自带的用户注册登录功能并修改登录方式
    go 安装环境
    laraveladmin 使用
  • 原文地址:https://www.cnblogs.com/yexiaochai/p/2118444.html
Copyright © 2011-2022 走看看