package com.joe.utilities.core.jdbc.jdbc.jdbcTemplate; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; public class JdbcTemplateExtend extends JdbcTemplate { private DataSource dataSource; /** * 默认构造器,调用此方法�始化,需�调用setDataSource设置数�� */ public JdbcTemplateExtend() { } /** * �始构造器 * * @param dataSource * 数�� */ public JdbcTemplateExtend(DataSource dataSource) { this.dataSource = dataSource; super.setDataSource(dataSource); } /** * 普通分页查询<br> * <b>如果结果结�比较大应该调用setFetchsize() 和setMaxRow两个方法�控制一下,�则会内存溢出</b> * * @see #setFetchSize(int) * @see #setMaxRows(int) * @param sql * 查询的sql语� * @param startRow * 起始行 * @param rowsCount * 获�的行数 * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List<Map> querySP(String sql, int startRow, int rowsCount) throws DataAccessException { return querySP(sql, startRow, rowsCount, getColumnMapRowMapper()); } /** * 自定义行包装器查询<br> * <b>如果结果结�比较大应该调用setFetchsize() 和setMaxRow两个方法�控制一下,�则会内存溢出</b> * * @see #setFetchSize(int) * @see #setMaxRows(int) * @param sql * 查询的sql语� * @param startRow * 起始行 * @param rowsCount * 获�的行数 * @param rowMapper * 行包装器 * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List<Map> querySP(String sql, int startRow, int rowsCount, RowMapper rowMapper) throws DataAccessException { return (List) query(sql, new SplitPageResultSetExtractor(rowMapper, startRow, rowsCount)); } public DataSource getDataSource() { return dataSource; } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; super.setDataSource(dataSource); } }