public class SQLTool {

public String getSql(String sql,int start)
{
boolean hasOffset=false;
if(start>0)
{
hasOffset=true;
}
sql=getLimitString(sql,hasOffset);
return sql;
}

public String getLimitString(String sql, boolean hasOffset) {
StringBuffer pagingSelect = new StringBuffer(sql.length() + 100);
if (hasOffset) {
pagingSelect.append(
"select * from ( select row_.*, rownum rownum_ from ( ");
} else {
pagingSelect.append("select * from ( ");
}
pagingSelect.append(sql);
if (hasOffset) {
pagingSelect.append(" ) row_ ) where rownum_ <= ? and rownum_ > ?");
} else {
pagingSelect.append(" ) where rownum <= ?");
}
return pagingSelect.toString();
}
}