PageList.java实体类

/*** 封装分页对象 **/
public class PageList {private int page;   //当前页private int totalRows;   //总行数private int pages;    //总页数private List list=new ArrayList();public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getPages() {return pages;}public void setPages(int pages) {this.pages = pages;}public List getList() {if(list==null){list=new ArrayList();}return list;}public void setList(List list) {this.list = list;}public int getTotalRows() {return totalRows;}public void setTotalRows(int totalRows) {this.totalRows = totalRows;}
}

dao层

   /*** 只查询一列数据类型对象。用于只有一行查询结果的数据* @param sql* @param params* @param cla Integer.class,Float.class,Double.Class,Long.class,Boolean.class,Char.class,Byte.class,Short.class* @return*/public Object queryOneColumnForSigetonRow(String sql,Object[] params,Class cla){Object result=null;try{if(params==null||params.length>0){result=jdbcTemplate.queryForObject(sql,params,cla);}else{result=jdbcTemplate.queryForObject(sql,cla);}}catch(Exception ex){ex.printStackTrace();}return result;}/*** 查询返回实体对象集合* @param sql    sql语句* @param params 填充sql问号占位符数* @param cla    实体对象类型* @return*/public List queryForObjectList(String sql,Object[] params,final Class cla){final List list=new ArrayList();try{jdbcTemplate.query(sql, params, new RowCallbackHandler(){public void processRow(ResultSet rs) {try{List<String> columnNames=new ArrayList<String>();ResultSetMetaData meta=rs.getMetaData();int num=meta.getColumnCount();for(int i=0;i<num;i++){columnNames.add(meta.getColumnLabel(i+1).toLowerCase().trim());}Method[] methods=cla.getMethods();List<String> fields=new ArrayList<String>();for(int i=0;i<methods.length;i++){if(methods[i].getName().trim().startsWith("set")){String f=methods[i].getName().trim().substring(3);f=(f.charAt(0)+"").toLowerCase().trim()+f.substring(1);fields.add(f);}}do{Object obj=null;try{obj=cla.getConstructor().newInstance();}catch(Exception ex){ex.printStackTrace();}for(int i=0;i<num;i++){Object objval=rs.getObject(i+1);for(int n=0;n<fields.size();n++){String fieldName=fields.get(n).trim();if(columnNames.get(i).equals(fieldName.toLowerCase().trim())){BeanUtils.copyProperty(obj, fieldName, objval);break;}}}list.add(obj);}while(rs.next());}catch(Exception ex){ex.printStackTrace();}}});}catch(Exception ex){ex.printStackTrace();}if(list.size()<=0){return null;}return list;}/*** 查询返回List<Map<String,Object>>格式数据,每一个Map代表一行数据,列名为key* @param sql  sql语句* @param params 填充问号占位符数* @return*/public List<Map<String,Object>> queryForMaps(String sql,Object[] params){try{if(params!=null&&params.length>0){return jdbcTemplate.queryForList(sql, params);}return jdbcTemplate.queryForList(sql);}catch(Exception ex){ex.printStackTrace();}return null;}/*** 查询分页(MySQL数据库)* @param sql     终执行查询的语句* @param params  填充sql语句中的问号占位符数* @param page    想要第几页的数据* @param pagerow 每页显示多少条数* @param cla     要封装成的实体元类型* @return        pageList对象*/public PageList queryByPageForMySQL(String sql, Object[] params, int page, int pagerow,Class cla) {String rowsql="select count(*) from ("+sql+") gmtxtabs_";   //查询总行数sqlint pages = 0;   //总页数int rows=(Integer)queryOneColumnForSigetonRow(rowsql, params, Integer.class);  //查询总行数//判断页数,如果是页大小的整数倍就为rows/pageRow如果不是整数倍就为rows/pageRow+1if (rows % pagerow == 0) {pages = rows / pagerow;} else {pages = rows / pagerow + 1;}//查询第page页的数据sql语句if(page<=1){sql+=" limit 0,"+pagerow;}else{sql+=" limit "+((page-1)*pagerow)+","+pagerow;}//查询第page页数据List list=null;if(cla!=null){list=queryForObjectList(sql, params, cla);}else{list=queryForMaps(sql, params);}//返回分页格式数据PageList pl =new PageList();pl.setPage(page);  //设置显示的当前页数pl.setPages(pages);  //设置总页数pl.setList(list);   //设置当前页数据pl.setTotalRows(rows);    //设置总记录数return pl;}

service层

controller层

        if(null==pageNo){pageNo = 1;}if(null==pageSize){pageSize = 30;}PageList list = service.getAllNotice(unitid, pageNo, pageSize);

转载于:https://www.cnblogs.com/aeolian/p/9228907.html

Spring的JdbcTemplate实现分页相关推荐

  1. Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法...

    以User为操作对象 package com.swift.jdbc;public class User {private Long user_id; private String user_code; ...

  2. Spring利用JDBCTemplate实现批量插入和返回id

    1.先介绍一下java.sql.Connection接口提供的三个在执行插入语句后可取的自动生成的主键的方法: //第一个是 PreparedStatement prepareStatement(St ...

  3. spring教程--JdbcTemplate详解

    Spring的JdbcTemplate JdbcTemplate模板与DbUtils工具类比较类似. 1 Spring对持久层技术支持: JDBC:org.springframework.jdbc.c ...

  4. spring data jpa实现分页查询功能

    spring data jpa实现分页查询功能 HTML代码部分: // 收派标准信息表格 $('#grid').datagrid( {iconCls : 'icon-forward',fit : t ...

  5. springboot 分页查询参数_10. Spring Boot 中的分页查询

    在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能.使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数 ...

  6. 使用Spring Data JPA进行分页和排序

    通过代码示例学习使用Spring Data JPA进行分页和排序 . 了解如何使用Springs PagingAndSortingRepository接口获取分页和排序结果. 1概述 在处理大量数据时 ...

  7. Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test

    1 package cn.zmh.PingCe; 2 3 import org.junit.Test; 4 import org.springframework.jdbc.core.BeanPrope ...

  8. Spring之JDBCTemplate

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回 ...

  9. Spring Boot集成pagehelper分页插件

    Spring Boot集成pagehelper分页插件 1.在pom.xml中添加pagehelper依赖 2.修改配置文件 3.修改Controller里面的查询方法 4.返回分页信息 1. 修改U ...

  10. Spring 学习 day3 : AOP,Spring中JdbcTemplate的使用

    1.AOP 1.1 什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术. ...

最新文章

  1. 通过SolrJ 4.9管理Solr core
  2. Gradle构建脚本概要之构建块
  3. mac 系统下nvm管理node安装遇到的问题
  4. GMapbook中文版上线
  5. 史上最气人的数学家:文理双全智商还高,说话只说半句,解题只解半个,调戏人调戏了三百年还不够......
  6. Flowable学习笔记(一、入门)
  7. mysql order by 索引名字_MySQL如何利用索引优化ORDER BY排序语句
  8. 三大最被低估的安全技术 用户数量决定一切
  9. url 解析一个url里面的参数,获取地址栏参数信息
  10. Linux学习总结(24)——Linux查找文件命令
  11. windows 安装 pip工具
  12. [转载] numpy.inf
  13. Java面试锦囊送给你!大厂门槛随便跨!
  14. 通信原理实践(四)——模拟通信系统性能分析
  15. java swing窗口放置屏幕中央问题思考
  16. matplotlib 中设置图形大小
  17. 微信支付中证书的存放目录及其路径写法
  18. VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
  19. ubuntu 20.04 firefox视频打不开问题
  20. java编写数独计算器

热门文章

  1. Atitit word ppt excel convert txt bp 等文档转换纯文本问题最佳实践.docx Atitit word ppt excel等文档转换txt问题最佳实践 目录 1.
  2. Atitit json array to csv 目录 1. Lib 1 1.1. Apache csv lib 1 1.2. Org.json.jar cdl模式 1 2. other 1 2
  3. Atititi 软件界面gui开发之道 attilax著
  4. paip.版本控制CVS-SVN-TFS总结
  5. PAIP.手机sms短信,联系人的同步与备份.txt
  6. 盘点国内外私募基金业绩报酬计提方式
  7. 基金公司十大非货规模逆袭(2010-2020)
  8. 天弘基金:中国的BlackRock?
  9. 云南公安云计算平台项目获中国优秀云计算开源案例特等奖
  10. 原创 | 职场二十年(一)电话风波