JdbcTemplate + sqlserver 2005 分页+Extjs
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JdbcTemplate + sqlserver 2005 分页+Extjs,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3096字,纯文字阅读大概需要5分钟。
内容图文
com.ur.util; import java.util.List; import java.util.Map; import org.springframework.jdbc.core.JdbcTemplate; public class Pagination { public static final int NUMBERS_PER_PAGE = 20; private int offset = 0; private int limit = 20; private int totalSize; private List<Map<String, Object>> resultList; private JdbcTemplate jTemplate; public Pagination() { } public Pagination(String sql, int offset, int limit,JdbcTemplate jTemplate){ setOffset(offset); setLimit(limit); setjTemplate(jTemplate); int orderByIndex = sql.toLowerCase().lastIndexOf("order by"); if (orderByIndex <= 0) { throw new UnsupportedOperationException( "must specify ‘order by‘ statement to support limit operation with offset in sql server 2005"); } String totalSql = "select count(*) as totalsize from ("+sql.toLowerCase().substring(0, orderByIndex) +") totalTable "; setTotalSize(this.jTemplate.queryForInt(totalSql)); String sqls = this.getLimitString(sql, offset, limit); setResultList(this.jTemplate.queryForList(sqls)); } public String getLimitString(String sql, int offset, int limit) { return getLimitString(sql, offset > 0,offset,limit); } public String getLimitString(String sql, boolean hasOffset, int offset, int limit) { int orderByIndex = sql.toLowerCase().lastIndexOf("order by"); if (orderByIndex <= 0) { throw new UnsupportedOperationException( "must specify ‘order by‘ statement to support limit operation with offset in sql server 2005"); } String sqlOrderBy = sql.substring(orderByIndex + 8); String sqlRemoveOrderBy = sql.substring(0, orderByIndex); int insertPoint = getSqlAfterSelectInsertPoint(sql); StringBuilder sbSql = new StringBuilder(sql.length() + 100).append("with tempPagination as(").append(sqlRemoveOrderBy).insert( insertPoint + 23, " ROW_NUMBER() OVER(ORDER BY " + sqlOrderBy + ") as RowNumber,").append( ") select * from tempPagination "); if(offset != -1 && limit !=-1){ sbSql.append(" where RowNumber between "+(offset+1)+" and "+(offset+limit)+"") ; } return sbSql.toString(); } private static int getSqlAfterSelectInsertPoint(String sql) { int selectIndex = sql.toLowerCase().indexOf("select"); final int selectDistinctIndex = sql.toLowerCase().indexOf("select distinct"); return selectIndex + (selectDistinctIndex == selectIndex ? 15 : 6); } public int getOffset() { return offset; } public void setOffset(int offset) { this.offset = offset; } public int getLimit() { return limit; } public void setLimit(int limit) { this.limit = limit; } public int getTotalSize() { return totalSize; } public void setTotalSize(int totalSize) { this.totalSize = totalSize; } public List<Map<String, Object>> getResultList() { return resultList; } public void setResultList(List<Map<String, Object>> resultList) { this.resultList = resultList; } public JdbcTemplate getjTemplate() { return jTemplate; } public void setjTemplate(JdbcTemplate jTemplate) { this.jTemplate = jTemplate; } }业务调用 Pagination pagination = new Pagination(sqlSb.toString(),start,limit,this.jdbcTemplate);
JdbcTemplate + sqlserver 2005 分页+Extjs
标签:
本文系统来源:http://blog.csdn.net/pdh123456/article/details/46504767
内容总结
以上是互联网集市为您收集整理的JdbcTemplate + sqlserver 2005 分页+Extjs全部内容,希望文章能够帮你解决JdbcTemplate + sqlserver 2005 分页+Extjs所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。