`
唯快不破
  • 浏览: 81948 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

对JdbcTemplate分页的一点理解

阅读更多
  众所周知用jdbc查询比用Hibernate的快,但jdbc没有Hibernate的setFirstResult和setMaxResults方法,所以要想用jdbc写查询方法恐怕只能在sql中加入分页的条件,如Oracle 10g的:
public class JdbcProjectDAOImpl extends JdbcDaoSupport implements IprojectDAO<Object> {

	class XiangmuRowMapper implements RowMapper{
		public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
			
			Xiangmu xiangmu = new Xiangmu();
			xiangmu.setXmid(rs.getString("xmid"));
			……
			return xiangmu;
		}
	}
/*
*hql为没有分页功能的查询语句,只需包在2个字符串中间即可实现分页
*/
		public List findPageList(String hql, int firstResult, int maxResults, Object[] values) {
		
		if(firstResult == 0){
			hql = "select * from ( " + hql +" ) where rownum <= " + maxResults;
		}else{
			hql= "select * from (select row_.*,rownum rownum_ from ( "+hql+" ) row_ where rownum <= "+maxResults+" ) where rownum_ > "+firstResult;
		}

		return getJdbcTemplate().query(hql, values, new XiangmuRowMapper());
	}


1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics