eclipse实现MySQL分页的类_springMVC详细配置+(Mysql+bootstrap+jquery+jdbcTemplate)实现分页功能...
springMVC详细配置+(Mysql+bootstrap+jquery+jdbcTemplate)实现分页功能(P:网上很少找到完整的springMVC+mysql实现分页查询,所以就自己详细的做了一个完整的例子)(环境:jdk1.6 +tomcat7.0+mysql+eclipse....)(包/文件:json.lib+jquery.js+spring3.0相关jar+jstl.jar+bo
springMVC详细配置+(Mysql+bootstrap+jquery+jdbcTemplate)实现分页功能
(P:网上很少找到完整的springMVC+mysql实现分页查询,所以就自己详细的做了一个完整的例子)
(环境:jdk1.6 +tomcat7.0+mysql+eclipse....)
(包/文件:json.lib+jquery.js+spring3.0相关jar+jstl.jar+bootstrap相关css\js.....)
(传输数据格式为:json)
(
SpringMVC 的核心原理:
1,用户发送请求给服务器:url:user.do
2,服务器收到请求。发现DispatchServlet 可以处理。于是调用DispatchServlet。
3,DispatchServlet 内部,通过HandleMapping 检查这个url 有没有对应的Controller。如果有,则调用Controller.
4,Controller 开始执行。
5,Controller 执行完后,如果返回字符串,则ViewResolver 将字符串转化成相对应的视图对象;如果返回ModelAndView ,该对象本身就包含了视图对象信息。
6,DispatchServlet 将执行视图对象中的数据,输出给服务器。
7,服务器将数据输出给客户端。
)
一,先秀效果图(不是很美观,只为实现效果):

二:整体结构
1,src(由于工程名较敏感,所以******)

2, webContent

三:主要配置文件
1.web.xml
<?xml version="1.0" encoding="UTF-8"?> Spring3MVCencodingFilter org.springframework.web.filter.CharacterEncodingFilter encodingUTF-8forceEncodingtrueencodingFilter/*springorg.springframework.web.servlet.DispatcherServlet1spring*.doindex.jsp
2.spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>1048576004096
3.***.properties
projectURL=http://localhost:8080/fk/downloadURL=http://localhost:8080/fk/upload/download/uploadURL=http://localhost:8080/fk/temp/
四:java类(business为本例实例)
1,AbstractDao
public class AbstractDao extends JdbcDaoSupport {@Resource(name = "dataSource")public void setSuperDataSource(DataSource dataSource) {super.setDataSource(dataSource);}}
2,BusinessDao(只展示分页查询方法)
@Repository("businessDao")public class BusinessDao extends AbstractDao{ /** * 分页查询 * @param currentPage 当前页 * @param numPerPage 每页记录数 * @return */public Pagination queryPageBusiness(Integer currentPage,Integer numPerPage) { String sql="SELECT * FROM business ORDER BY businessId ASC ";Pagination page=new Pagination(sql, currentPage, numPerPage, getJdbcTemplate());return page; }}
3,PageInation(分页工具类)
public class Pagination extends JdbcDaoSupport{public static final int NUMBERS_PER_PAGE = 10; //一页显示的记录数 private int numPerPage; //记录总数 private int totalRows; //总页数 private int totalPages; //当前页码 private int currentPage; //起始行数 private int startIndex; //结束行数 private int lastIndex; //结果集存放List private List resultList; //JdbcTemplate jTemplate private JdbcTemplate jTemplate; /** * 每页显示10条记录的构造函数,使用该函数必须先给Pagination设置currentPage,jTemplate初值 * @param sql oracle语句 */ public Pagination(String sql){ if(jTemplate == null){ throw new IllegalArgumentException("com.deity.ranking.util.Pagination.jTemplate is null,please initial it first. "); }else if(sql.equals("")){ throw new IllegalArgumentException("com.deity.ranking.util.Pagination.sql is empty,please initial it first. "); } new Pagination(sql,currentPage,NUMBERS_PER_PAGE,jTemplate); } /**分页构造函数 * @param sql 根据传入的sql语句得到一些基本分页信息 * @param currentPage 当前页 * @param numPerPage 每页记录数 * @param jTemplate JdbcTemplate实例 */ public Pagination(String sql,int currentPage,int numPerPage,JdbcTemplate jTemplate){ if(jTemplate == null){ throw new IllegalArgumentException("com.deity.ranking.util.Pagination.jTemplate is null,please initial it first. "); }else if(sql == null || sql.equals("")){ throw new IllegalArgumentException("com.deity.ranking.util.Pagination.sql is empty,please initial it first. "); } //设置每页显示记录数 setNumPerPage(numPerPage); //设置要显示的页数 setCurrentPage(currentPage); //计算总记录数 StringBuffer totalSQL = new StringBuffer(" SELECT count(*) FROM ( "); totalSQL.append(sql); totalSQL.append(" ) totalTable "); //给JdbcTemplate赋值 setJdbcTemplate(jTemplate); //总记录数 setTotalRows(getJdbcTemplate().queryForInt(totalSQL.toString())); //计算总页数 setTotalPages(); //计算起始行数 setStartIndex(); //计算结束行数 setLastIndex(); System.out.println("lastIndex="+lastIndex);////////////////// //构造oracle数据库的分页语句 /** StringBuffer paginationSQL = new StringBuffer(" SELECT * FROM ( "); paginationSQL.append(" SELECT temp.* ,ROWNUM num FROM ( "); paginationSQL.append(sql); paginationSQL.append(" ) temp where ROWNUM <= " + lastIndex); paginationSQL.append(" ) WHERE num > " + startIndex); */ //装入结果集 setResultList(getJdbcTemplate().queryForList(getMySQLPageSQL(sql,startIndex,numPerPage))); } /** * 构造MySQL数据分页SQL * @param queryString * @param startIndex * @param pageSize * @return */public String getMySQLPageSQL(String queryString, Integer startIndex, Integer pageSize){String result = "";if (null != startIndex && null != pageSize){result = queryString + " limit " + startIndex + "," + pageSize;} else if (null != startIndex && null == pageSize){result = queryString + " limit " + startIndex;} else{result = queryString;}return result;} public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getNumPerPage() { return numPerPage; } public void setNumPerPage(int numPerPage) { this.numPerPage = numPerPage; } public List getResultList() { return resultList; } public void setResultList(List resultList) { this.resultList = resultList; } public int getTotalPages() { return totalPages; } //计算总页数 public void setTotalPages() { if(totalRows % numPerPage == 0){ this.totalPages = totalRows / numPerPage; }else{ this.totalPages = (totalRows / numPerPage) + 1; } } public int getTotalRows() { return totalRows; } public void setTotalRows(int totalRows) { this.totalRows = totalRows; } public int getStartIndex() { return startIndex; } public void setStartIndex() { this.startIndex = (currentPage - 1) * numPerPage; } public int getLastIndex() { return lastIndex; } public JdbcTemplate getJTemplate() { return jTemplate; } public void setJTemplate(JdbcTemplate template) { jTemplate = template; } //计算结束时候的索引 public void setLastIndex() { System.out.println("totalRows="+totalRows);/////////// System.out.println("numPerPage="+numPerPage);/////////// if( totalRows < numPerPage){ this.lastIndex = totalRows; }else if((totalRows % numPerPage == 0) || (totalRows % numPerPage != 0 && currentPage < totalPages)){ this.lastIndex = currentPage * numPerPage; }else if(totalRows % numPerPage != 0 && currentPage == totalPages){//最后一页 this.lastIndex = totalRows ; } }}
4,BusinessService
/** * 业务处理 * @author Administrator * */@Service("BusinessService") public class BusinessService { @Resource private BusinessDao businessDao;/** * 分页查询 * @param currentPage 当前页 * @param numPerPage 每页记录数 * @return */public Pagination queryPageBusiness(Integer currentPage,Integer numPerPage) { return businessDao.queryPageBusiness(currentPage, numPerPage); }}
5,BusinessController
@Controller@RequestMapping(value = "/business")public class BusinessController {@Resourceprivate BusinessService businessService;private final static String uploadURL=propertiesUtil.getUrl("uploadURL"); /** * 分页查询所有 * @param request * @param response */ @RequestMapping(value = "queryPageBusiness.do") public void queryPageBusiness(HttpServletRequest request,HttpServletResponse response) {String message = "";String status = ""; PrintWriter out = null;List> businessList =null;Pagination page=null; Map map = new HashMap();try {out = response.getWriter();String currentPage = URLDecoder.decode(request.getParameter("currentPage"));String numPerPage = URLDecoder.decode(request.getParameter("numPerPage"));if("".equals(currentPage)||"".equals(numPerPage)){ page =businessService.queryPageBusiness(1, 10); }else{ page =businessService.queryPageBusiness(StringUtil.getInteger(currentPage), StringUtil.getInteger(numPerPage)); } List list=page.getResultList();businessList=new ArrayList>(); for (int i = 0,len=list.size();i maps=new HashMap();Map mapRe=(Map)list.get(i); maps.put("businessPic", StringUtil.nullOrBlank(mapRe.get("businessPic")+"")?"":uploadURL+mapRe.get("businessPic"));maps.put("businessName", mapRe.get("businessName"));maps.put("businessId", mapRe.get("businessId"));maps.put("businessEname", mapRe.get("businessEname")); maps.put("createTime", FormatDateTime.formatDateTime("yyyy-MM-dd", mapRe.get("createTime")+""));businessList.add(maps); }message="success"; status = Constants.RETURN_STATUS_0;} catch (Exception e1) { e1.printStackTrace();message="failure";status = Constants.RETURN_STATUS_1;}finally{ map.put("message", message); map.put("totalPage", page.getTotalPages()); map.put("currentPage", page.getCurrentPage()); map.put("totalRows", page.getTotalRows()); map.put("numPerPage", page.getNumPerPage()); map.put("status", status); map.put("businessList", businessList); //必须设置字符编码,否则返回json会乱码response.setContentType("text/html;charset=UTF-8"); out.write(JSONSerializer.toJSON(map).toString());out.flush();out.close();} } }
五,web(分页jsp代码)
分页列表
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)