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);
}
}