[原创]Mybatis + SpringMVC  + Maven实现分页查询_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3698 | 回复: 0   主题: [原创]Mybatis + SpringMVC  + Maven实现分页查询        下一篇 
panpan.nie
注册用户
等级:大校
经验:4754
发帖:217
精华:2
注册:1970-1-1
状态:离线
发送短消息息给panpan.nie 加好友    发送短消息息给panpan.nie 发消息
发表于: IP:您无权察看 2016-2-16 17:35:24 | [全部帖] [楼主帖] 楼主

使用Mybatis + Maven + SpringMVC 运行时,突然被需要分页查询的功能给难住了


这里推荐采用的插件是PageHelper这个插件,使用起来十分方便。该插件支持以下数据库:

Oracle
Mysql
MariaDB
SQLite
Hsqldb
PostgreSQL
DB2
SqlServer(2005+)
Informix
H2


对应于github的项目地址: 

https://github.com/pagehelper/Mybatis-PageHelper

关于使用建议猿友们可以详细阅读下这里的介绍: 

http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown


PageHelper的使用方法

1、引入依赖

在pom.xml文件添加如下依赖:

<!-- mybatis分页插件依赖 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.0.0</version>
</dependency>


3.2、在Mybatis配置xml中配置拦截器插件

在mybatis-config.xml文件中添加插件后的内容如下:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>    
<plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageHelper">
        <property name="dialect" value="mysql"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
        <!-- 和startPage中的pageNum效果一样-->
        <property name="offsetAsPageNum" value="true"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
        <property name="rowBoundsWithCount" value="true"/>
        <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
        <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
        <property name="pageSizeZero" value="true"/>
        <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
        <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
        <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
        <property name="reasonable" value="false"/>
        <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
        <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
        <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 -->
        <!-- 不理解该含义的前提下,不要随便复制该配置 -->
        <property name="params" value="pageNum=start;pageSize=limit;"/>
        <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
        <property name="returnPageInfo" value="check"/>
    </plugin>
</plugins>
</configuration>


哦,顺便提一下,SpringMVC 的配置文件

    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:org/hr/integrity/mapping/*.xml"></property> 
        <property name="configLocation" value="classpath:/mybatis-config.xml"></property> 
    </bean>

 

3.3、mapper文件添加sql

在userMapper.xml文件里面添加sql:

  <resultMap id="BaseResultMap" type="org.hr.integrity.bean.Users" >
    <id column="user_id" property="userId" jdbcType="INTEGER" />
    <result column="user_name" property="userName" jdbcType="VARCHAR" />
    <result column="enterprise_name" property="enterpriseName" jdbcType="VARCHAR" />
    <result column="enterprise_email" property="enterpriseEmail" jdbcType="VARCHAR" />
    <result column="passwords" property="passwords" jdbcType="VARCHAR" />
    <result column="tel" property="tel" jdbcType="VARCHAR" />
    <result column="isapproval" property="isapproval" jdbcType="INTEGER" />
  </resultMap>
  <sql id="Base_Column_List" >
    user_id, user_name, enterprise_name, enterprise_email, passwords, tel, isapproval
  </sql>
  <select id="selectUsersByIsapproval" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from users
    where isapproval = #{isapproval}
  </select>


3.4、dao添加对用方法

UserDao.java添加如下方法:

List<Users> selectUsersByIsapproval(Integer isapproval);


3.5、service添加分页查询方法

UserService.java文件添加方法

    public PageInfo<Users> selectUsersByIsaByPage(Integer isapproval,Integer pageNo,Integer pageSize)
    {
        pageNo = pageNo == null?1:pageNo;
        pageSize = pageSize == null?10:pageSize;
        PageHelper.startPage(pageNo, pageSize);
        List<Users> list = userDao.selectUsersByIsapproval(isapproval);
        //用PageInfo对结果进行包装
        PageInfo<Users> page = new PageInfo<Users>(list);
        //测试PageInfo全部属性
        System.out.println(page.toString());
        return page;
    }


至于 Mybatis + Maven + SpringMVC 的框架怎么搭建,呵呵,这里不告诉你!


其他博客:http://blog.csdn.net/u013142781/article/details/50410243




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论