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

一、工具类的使用

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工具类,并利用其实现简单分页控件。相关推荐

  1. java future用法_Java中的多线程知识点

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  2. java中的并发类_java中并发常用工具类

    前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了 今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类, ...

  3. java 字符串用法_Java中的字符串用法小结

    本文实例总结了Java中的字符串用法.分享给大家供大家参考.具体分析如下: 字符串的本质是char类型的数组,但在java中,所有用双引号""声明的字符串都是一个String类的对 ...

  4. java divide 用法_java中BigDecimal加减乘除基本用法

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数. 在实际应用中,需要对更大或者更小的数进 ...

  5. java json 工具类_Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java ...

  6. java dateutils详解_java中DateUtils时间工具类详解

    package com.example.administrator.myapp; import java.text.ParseException; import java.text.SimpleDat ...

  7. mongodb java 单例_Java单例MongoDB工具类

    我经常对MongoDB进行一些基础操作,将这些常用操作合并到一个工具类中,方便自己开发使用. 没用Spring Data.Morphia等框架是为了减少学习.维护成本,另外自己直接JDBC方式的话可以 ...

  8. mongodb java 单例_JAVA单例MongoDB工具类详解

    shasha 2018年09月07日 681 0 JAVA单例MongoDB工具类 JAVA驱动版本: org.mongodb mongo-java-driver 3.0.2 工具类代码如下: pac ...

  9. jredis 工具_java中的redis工具类

    1.redis基础类packagecom.qlchat.component.redis.template;importjavax.annotation.PostConstruct;importorg. ...

最新文章

  1. 阿里首次公布人工智能调用规模:每天调用超1万亿次
  2. mysql cmd终端服务无法启动
  3. MapGIS转Shp文件的单位问题
  4. eclipse 工程中使用引入maven项目遇到maven-resources-plugin:2.6 找不到
  5. 城轨的两类时钟系统均同步于_基于两台SDS3000示波器同步产生“8通道”示波器...
  6. mysql数据库information_schema库中的表说明
  7. 有关Kill Session问题的讨论(旧文初发)
  8. 关于sharepoint2013的SPUtility.GetGenericSetupPath()方法过期解决办法
  9. 心电图前波过多_如何读懂心电图危急值?
  10. JavaScript之数组学习
  11. uniapp开发h5应用进行微信网页授权登录获取code失败
  12. i print打印监控系统
  13. linux获取笔记本摄像头视频,Linux下利用Opencv打开笔记本摄像头问题
  14. Python UnboundLocalError: local variable ‘str‘ referenced before assignment
  15. 《今日简史》谈到的生物技术和人工智能技术
  16. Sparkplug规范-4.引用标准和资源
  17. serv-u 用户时间显示相差8小时_调好闹钟!4月8日凌晨,将迎来今年最大满月
  18. 为啥女性洗澡都很慢,究竟在干啥?
  19. mysql+查询触发器+sql_Mysql基本查询、视图、索引、触发器
  20. 树莓派4b入门之开发RFID系统—两种MFRC522读写脚本

热门文章

  1. Fedora17下安装OpenCV2.3.1[转]
  2. 在linux系统下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX...
  3. 【转】关于EASYSIZE宏(动态调整控件位置、大小的宏)
  4. ocs 2007 r2 服务体验
  5. Linux命令(1)—— xargs 命令
  6. K8s运行dashboard命令启动报错:no endpoints available for service \kubernetes-dashboard\
  7. 洛谷 3833 SHOI 2012 魔法树
  8. Windows消息机制概述
  9. 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  10. 如何为新建网站选择好的域名