📄 paginated.java
字号:
package com.exeerp.pub.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.ibatis.sqlmap.client.SqlMapClient;
/*
* ibatis 分页组件
*
* 测试版1.0
* 谢源
*/
public class Paginated{
private SqlMapClient sqlClient;
private String url;
private int pageSize;
private int currentPage;
private int recordSum;
private int pageSum;
private int start;
private int end;
private String fieldNames[];
private List<Object> recordList;
private Object obj;
private Map<Object,Object> map;
private StringBuffer toHtml;
public Paginated(SqlMapClient sqlClient, Object obj,int currentPage,String url) {
this.sqlClient = sqlClient;
this.currentPage=currentPage;
this.obj = obj;
this.url=url;
try {
this.recordSum = (Integer) sqlClient.queryForObject("selectForCount-"+obj.getClass().getSimpleName(),obj);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
init();
}
public Paginated(SqlMapClient sqlClient, Object obj,int currentPage,int pageSize,String url) {
this.sqlClient = sqlClient;
this.obj = obj;
this.currentPage=currentPage;
this.url=url;
this.pageSize=pageSize;
init();
}
private void init(){
try {
objToMap();
pageInfo();
toHtml();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void objToMap(){
map = new HashMap<Object,Object>();
Class clazz = null;
Method method;
try {
clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
fieldNames=new String[fields.length];
for(int i=0;i<fields.length; i++){
fieldNames[i]=fields[i].getName();
}
for (int i = 0; i < fields.length; i++) {
String methodName = "get"
+ Character.toUpperCase(fieldNames[i].charAt(0))
+ fieldNames[i].substring(1);
method = clazz.getMethod(methodName, new Class[] {});
if (method.invoke(obj, null) != null) {
map.put(fieldNames[i], method.invoke(obj, null));
}
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void pageInfo() throws SQLException{
this.recordSum = (Integer) sqlClient.queryForObject("selectForCount-"+obj.getClass().getSimpleName(),obj);
if(currentPage<=0){
currentPage=1;
}
if(pageSize<5){
pageSize=5;
}
this.pageSum=(recordSum+pageSize-1)/pageSize;
if(currentPage>pageSum){
currentPage=pageSum;
}
this.start=(currentPage-1)*pageSize;
this.end=currentPage*pageSize;
}
public void toHtml() {
toHtml=new StringBuffer();
String tempUrl="";
Iterator iterator=map.entrySet().iterator();
String entryName=obj.getClass().getSimpleName();
entryName=Character.toLowerCase(entryName.charAt(0))+entryName.substring(1);
while(iterator.hasNext()){
Map.Entry entry=(Entry) iterator.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
tempUrl+=entryName+"."+(String) entry.getKey()+"="+(String) entry.getValue()+"&";
}
tempUrl=tempUrl+"currentPage=";
toHtml.append("共"+recordSum+"条记录 "+"当前是第"+currentPage+"页 共"+pageSum+"页");
if(currentPage>1&&pageSum>=2){
toHtml.append("<a href='"+url+"?"+tempUrl+"1'>首页</a> ");
}
if(currentPage>1){
toHtml.append("<a href='"+url+"?"+tempUrl+(currentPage-1)+"'>上一页</a> ");
}
if(currentPage<pageSum&¤tPage>0){
toHtml.append("<a href='"+url+"?"+tempUrl+(currentPage+1)+"'>下一页</a> ");
}
if(currentPage<pageSum){
toHtml.append("<a href='"+url+"?"+tempUrl+pageSum+"'>尾页</a> ");
}
//toHtml.append("转到第<input type='text' name='currentPage' id='currentPage' value='"+currentPage+"'size='2'>页 <input type='button' value='跳转' onclick='window.open('"+url+"?"+tempUrl+"'document.getElementById(\"currentPage\").value'>'");
}
public List getRecordList() {
map.put("start", start);
map.put("end", end);
try {
this.recordList = sqlClient.queryForList("selectForPage-"+obj.getClass().getSimpleName(), map);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return recordList;
}
public SqlMapClient getSqlClient() {
return sqlClient;
}
public void setSqlClient(SqlMapClient sqlClient) {
this.sqlClient = sqlClient;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSum() {
return pageSum;
}
public void setPageSum(int pageSum) {
this.pageSum = pageSum;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public int getRecordSum() {
return recordSum;
}
public void setRecordSum(int recordSum) {
this.recordSum = recordSum;
}
public StringBuffer getToHtml() {
return toHtml;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -