⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paginated.java

📁 IBatis分页组件 IBatis分页组件
💻 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&&currentPage>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 + -