//在application中对PageDAO进行配置,引用数据库链接信息的dataSource
public class PageDAO extends JdbcDaoSupport {
private static final PageDAO pageDAO = new PageDAO();// 单例模式
private PageDAO() {
}
public static PageDAO getInstance() {
return pageDAO;
}
private int queryForInt(String sql) {
return this.getJdbcTemplate().queryForInt(sql);
}
public List queryForList(String sql){
return this.getJdbcTemplate().queryForList(sql);
}
@SuppressWarnings("unchecked")
public PageModal getPageModal(String sql, PageBean bean) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/applicationContext.xml");
//需要在application配置文件中对jdbcDao调用dataSource进行引用
PageDAO jdbcDao = (PageDAO) ctx.getBean("jdbcDao");
PageModal pageModal = new PageModal();
String countSql = "select count(*) from (" + sql + ") m";
int totalCount = jdbcDao.queryForInt(countSql);// 查询总数
pageModal.setTotalCount(totalCount);
String listSql = "select m.* from (";
listSql = listSql + sql;
listSql = listSql + ") m limit "
+bean.getStart()+","+bean.getNum();
List<Map> pageList =jdbcDao.queryForList(listSql);// 查询分页数据
pageModal.setPageList(pageList);
return pageModal;
}
}
//配置的application中的信息为,dataSourcewLocal为数据库链接的基本信息
// <bean id="jdbcDao" class="com.incesoft.remote.page.PageDAO">
// <property name="dataSource">
// <ref bean="dataSourceLocal" />
// </property>
// </bean>