• 【SSM 5】Mybatis分页插件的使用


    一、添加maven依赖项

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><dependency>
    	<groupId>com.github.miemiedev</groupId>
    	<artifactId>mybatis-paginator</artifactId>
    </dependency>
    <dependency>
    	<groupId>com.github.pagehelper</groupId>
    	<artifactId>pagehelper</artifactId>
    </dependency></span>

    版本号:

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><pagehelper.version>3.4.2-fix</pagehelper.version>
    <mybatis.paginator.version>1.2.15</mybatis.paginator.version></span>

    二、Mybatis配置文件(SqlMapConfig.xml)增加分页插件

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
    	PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    	"http://mybatis.org/dtd/mybatis3 config.dtd">
    	
    <configuration>
    	<!-- 配置分页插件 -->
    	<plugins>
    		<plugin interceptor="com.github.pagehelper.PageHelper">
    			<!-- 设置数据库类型Oracle,MySQL,MarinDBName,SQLite,PostareSQL六种数据库 -->
    			<property name="dialect" value="mysql"/>
    		</plugin>
    	</plugins>
    </configuration></span>

    三、spring整合

    <span style="font-family:KaiTi_GB2312;font-size:18px;">	</bean>
    	<!-- 让spring管理sqlsessionfactory-->
    	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<!-- 数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 加载mybatis的全局配置文件 -->
    		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
    	</bean>
    	<!-- 配置扫描包,加载mapper代理对象 -->
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    		<property name="basePackage" value="Angel.mapper" />
    	</bean></span>

    四、service分页实现

    <span style="font-family:KaiTi_GB2312;font-size:18px;">@Override
    	public EUDataGridResult selectAll(int pageNum,int pageSize) {
    
    		//设置分页的参数
    		PageHelper.startPage(pageNum, pageSize);
    		//查询数据
    		List<TbUser> list=userMapper.selectAll();
    		//创建一个返回值对象
    		EUDataGridResult result=new EUDataGridResult();
    		result.setRows(list);
    		
    		//取记录总条数
    		PageInfo<TbUser> pageInfo=new PageInfo<>(list);
    		result.setTotal(pageInfo.getTotal());
    		
    		return result;
    	}</span>

    附:EUDataGridResult 类

    <span style="font-family:KaiTi_GB2312;font-size:18px;">package Angel.pojo;
    
    import java.util.List;
    
    public class EUDataGridResult {
    	private long total;
    	private List<?> rows;
    	public long getTotal() {
    		return total;
    	}
    	public void setTotal(long total) {
    		this.total = total;
    	}
    	public List<?> getRows() {
    		return rows;
    	}
    	public void setRows(List<?> rows) {
    		this.rows = rows;
    	}
    }</span>

    五、controller实现

    <span style="font-family:KaiTi_GB2312;font-size:18px;">@RequestMapping("/user/findAll")
    	@ResponseBody
    	public EUDataGridResult getItemList(@RequestParam(defaultValue="1")Integer page, @RequestParam(defaultValue="10")Integer rows,HttpServletResponse response) throws IOException{
    		EUDataGridResult result=userService.selectAll(page, rows);
    		return result;
    	}</span>

    六、JSP页面

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <title>Insert title here</title>
    <link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.1/themes/default/easyui.css" />
    <link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.1/themes/icon.css" />
    <script type="text/javascript" src="js/jquery-easyui-1.4.1/jquery.min.js"></script>
    <script type="text/javascript" src="js/jquery-easyui-1.4.1/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="js/jquery-easyui-1.4.1/locale/easyui-lang-zh_CN.js"></script>
    
    </head>
    <body>
    <table class="easyui-datagrid" id="itemList" title="用户列表"
     data-options="url:'<%=basePath %>user/findAll',pageSize:10,pagination:true">
        <thead>
            <tr> 
            	<th data-options="field:'id',70">ID</th>
                <th data-options="field:'username',60">名称</th>
                <th data-options="field:'phone',70">电话</th>
                <th data-options="field:'email',70">邮箱</th>
                <th data-options="field:'created',130,align:'center'">创建日期</th>
                <th data-options="field:'updated',130,align:'center'">更新日期</th>
           </tr>
        </thead>
    </table>
    </body>
    </html></span>

    七、总结

    在最开始的时候,想自己写一个分页实现,但是,后来就发现有Mybatis已经封装好的分页插件,就简单的配置一下就可以使用了。到现在还是感觉,自己对已有资源的使用还不够,每次都闹着自己创新创造,但是,先向别人学习,这一步也很重要。

    然后在实现的时候,先是和王高高弄这个分页插件,不知道为什么,她那儿弄了好久都没有成功,后来自己回来写demon,发现一下子就成功了。我想,肯定是少配置文件了!

  • 相关阅读:
    无法执行 FunctionImport“entitys.xx”,因为未将它映射到存储函数。EF
    图解TCP/IP→第2章基础知识
    50个查询系列-第二个查询
    50个查询系列-第一个查询
    50个查询系列-建表和插入数据
    027医疗项目-模块二:药品目录的导入导出-导入功能的Action的编写
    026医疗项目-模块二:药品目录的导入导出-导入功能的Service的编写
    025医疗项目-模块二:药品目录的导入导出-HSSF导入类的封装
    024医疗项目-模块二:药品目录的导入导出-HSSF导入类的学习
    023医疗项目-模块二:药品目录的导入导出-从数据库中查出数据用XSSF导出excel并存放在虚拟目录最后下载(包括调试)
  • 原文地址:https://www.cnblogs.com/hhx626/p/7534637.html
Copyright © 2020-2023  润新知