Spring提供的JdbcTemplate实现分页

本文介绍了一个基于JdbcDaoSupport的PageDAO类实现,通过单例模式提供分页查询功能。该类利用Spring框架的ApplicationContext获取数据源,并执行SQL查询以获取总记录数和分页数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//在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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值