pagehandler.java

来自「这是一个轻便的j2ee的web应用框架,是一个在多个项目中运用的实际框架,采用s」· Java 代码 · 共 44 行

JAVA
44
字号
/*
 * Created on 2004-4-1
 *
 */
package com.esimple.service.query.handler;

import java.util.*;
import com.esimple.framework.util.DataTypeConverter;
import com.esimple.service.query.config.*;

/**
 * @author steven
 *
 */
public class PageHandler implements SqlHandler {
	public String toSqlString(QueryConfig query,String sql,String role,HashMap context)throws Exception{
		Object objBegin = context.get("beginNum");
		Object objLength=  context.get("pageLength");;
		if( objBegin == null || objLength == null ) return sql;
		
		int begin =0;
		int length;
		try{
			begin 	= DataTypeConverter.toInt( objBegin.toString() );
			length = DataTypeConverter.toInt( objLength.toString() );
		}catch(Exception e) {
			length = -1;
		}
		if( length == -1 ) return sql;
		
		//oracle 分页实现
		StringBuffer pagingSelect = new StringBuffer();
		pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( "); 
		pagingSelect.append(sql); 
		pagingSelect.append(" ) row_ where rownum <=");
		pagingSelect.append(begin+length); 
		pagingSelect.append( ") where rownum_ > "); 
		pagingSelect.append(begin); 
		
		sql = pagingSelect.toString(); 
		return sql;
	}	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?