分页查询步骤
来源:互联网 发布:类似知乎的软件有哪些 编辑:程序博客网 时间:2024/06/05 19:32
dao层
1.先查询所有的记录数量(select count(*) from)
2.再查询每页的数据(select * from 表 limit ?,? )
public class CustomerAction extends ActionSupport implements ModelDriven<Customer> {private static final long serialVersionUID = 3744982332278861955L;@Autowiredprivate CustomerService customerService;private Customer customer = new Customer();public Customer getModel() {return customer;}public String add() {System.out.println("web层:保存客户...");customerService.save(customer);return NONE;}// 属性驱动的方式// 当前页,默认值1private Integer pageCode = 1;public void setPageCode(Integer pageCode) {if (pageCode == null) {pageCode = 1;}this.pageCode = pageCode;}// 每页显示的数据的条数private Integer pageSize = 2;public void setPageSize(Integer pageSize) {this.pageSize = pageSize;}public String findByPage() {DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);PageBean<Customer> page = customerService.findByPage(pageCode, pageSize, criteria);return NONE;}}
@Transactional@Servicepublic class CustomerServiceImpl implements CustomerService {@Autowiredprivate CustomerDao customerDao;public void setCustomerDao(CustomerDao customerDao) {this.customerDao = customerDao;}@Overridepublic void save(Customer customer) {System.out.println("业务层:保存客户...");customerDao.save(customer);}@Overridepublic PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {return customerDao.findByPage(pageCode, pageSize, criteria);}}
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {@Overridepublic void save(Customer customer) {System.out.println("持久层:save...");this.getHibernateTemplate().save(customer);}@Overridepublic PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {PageBean<Customer> page = new PageBean<>();page.setPageCode(pageCode);page.setPageSize(pageSize);// 先查询总记录数criteria.setProjection(Projections.rowCount());List<Number> list = (List<Number>) this.getHibernateTemplate().findByCriteria(criteria);if (list != null && list.size() > 0) {int totalCount = list.get(0).intValue();// 总的记录数page.setTotalCount(totalCount);}// 强调:把select count(*)先清空。变成select * ...criteria.setProjection(null);List<Customer> beanList = (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria,(pageCode - 1) * pageSize, pageSize);// 分页查询数据,每页显示的数据,使用limitpage.setBeanList(beanList);return page;}}
阅读全文
0 0
- 分页高级查询步骤
- 分页查询步骤
- ajax实现分页,多条件查询步骤(基于nodejs)
- 查询步骤
- 查询步骤
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- NPU 17届程序设计 1043 跳马
- 面试题
- 利用strace追踪php-fpm多个进程
- 进阶的HTML5游戏设计
- B
- 分页查询步骤
- TensorFlow常用生成tensor函数
- 版本号
- python之列表
- SOJ1114 (全中大历史排名130C++)
- 4.7(5)——人名币转换
- IT界的三大定律
- Python从零开始(库的安装与初步使用3+习题1.6)
- Material Design控件之NavigationView