mybatis分页插件PageHelper的使用
来源:互联网 发布:淘宝代运营 编辑:程序博客网 时间:2024/06/05 15:38
本篇文章主要写mybaits插件的使用过程,其中包括:
- 原理简单解析
- mybatis配置(单独mybatis的配置和结合spring的配置)
- mybatisPageHelper使用(两个方法)
- 总结
代码完整
原理分析
PageHelper就是只需要调用方法就可以进行对数据表提取数据的时候进行分页。
主要特点:
- 不需要关心数据库是什么类型,支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库
- 非常简单实用。
mybatis配置
- 需要的jar包
- com.github.pagehelper
- org.mybatis
- mybatis配置
- 需要注意的是:1.插件的版本问题,5.0以上版本用到的类是不一样的。2.插件的位置顺序问题。详情看下面的配置讲解
- 单独mybatis的配置
<configuration> <properties resource="db.properties"/> <!-- 配置分页插件 --> <!--位置一定要正确!!!放的位置一定要正确--> <!-- 顺序如下 properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers? --> <plugins> <!--分页插件 5.0 版本和 4.2.x 实现完全不同,否则会报错--> <!--5.0用的类是com.github.pagehelper.PageInterceptor--> <!--5.0以下用的是com.github.pagehelper.PageHelpe--> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 这里是可以使用参数的 填写参数形式是<property name="param1" value="value1"/> 这里我不用参数,默认就可以了,有需求可以填上参数。可以参考网上的文档 --> </plugin> </plugins> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/personDao.xml"/> </mappers></configuration>
4.结合spring的配置文件,只需要在mybatis配置文件加入以下代码就可以
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注意其他配置 --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--使用下面的方式配置参数,一行配置一个 --> <value> params=value1 </value> </property> </bean> </array> </property></bean>
mybatisPageHelper使用(两个方法)
- 代码很简单,主要就3个类。完整代码已经放到github
- personDao Dao类
- Person 实体类
- test 代码测试类
- test层代码
//加载mybaits文件 private SqlSession getPersonDao(String resource){ InputStream inputStream= null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } @Test public void getPerson(){ //首先获取全部数据 SqlSession sqlSession=getPersonDao("mybaits-config.xml"); personDao mapper = sqlSession.getMapper(personDao.class); //方法一: //取第1页的数据,第一页显示10行 PageHelper.startPage(1, 10); //得到的peopleList 类型是Page<E>,Page<E>类型里面包含了count, pageNum, pageSize, // startRow, endRow, total, pages, reasonable, pageSizeZero 变量 List<Person> peopleList=mapper.getData(); //可以直接输出看看有什么变量 System.out.println(peopleList.toString()); //如果需要使用Page<E> 的方法获取属性 需要方法一是:强制转换,方法二是 pageInfo。 //方法一: System.out.println("获取一下总数 "+((Page)peopleList).getTotal()); System.out.println("总页数有 "+((Page)peopleList).getPages()); System.out.println(peopleList.get(1)); //方法二: //pageInfo对结果进行封装 PageInfo pageInfo=new PageInfo(peopleList); System.out.println("获取一下总数 "+pageInfo.getTotal()); //遍历数据 for (Person aPeopleList : peopleList) { System.out.println(aPeopleList); } }
输出内容:
Page{count=true, pageNum=1, pageSize=10, startRow=0, endRow=10, total=300, pages=30, reasonable=false, pageSizeZero=false}获取一下总数 300总页数有 30Person{id=2, person_name='小明2', hobby='篮球', age=1}获取一下总数 300Person{id=1, person_name='小明1', hobby='篮球', age=1}Person{id=2, person_name='小明2', hobby='篮球', age=1}Person{id=4, person_name='小明3', hobby='篮球', age=1}Person{id=5, person_name='小明4', hobby='篮球', age=1}Person{id=6, person_name='小明5', hobby='篮球', age=1}Person{id=7, person_name='小明6', hobby='篮球', age=1}Person{id=8, person_name='小明7', hobby='篮球', age=1}Person{id=9, person_name='小明8', hobby='篮球', age=1}Person{id=10, person_name='小明9', hobby='篮球', age=1}Person{id=11, person_name='小明10', hobby='篮球', age=1}
总结
1.可以看出来代码量很少,是非常轻量级的,非常好用。只是配置的过程中可能会浪费一点时间,不过配置完后用起来就很舒服了。
2. 主要配置文件的信息,这些是我掉过得坑。插件的位置以及版本需要注意好!!!
阅读全文
0 0
- 【MyBatis】MyBatis分页插件PageHelper的使用
- 【MyBatis】MyBatis分页插件PageHelper的使用
- 【MyBatis】MyBatis分页插件PageHelper的使用
- Mybatis中分页插件PageHelper的使用
- Mybatis分页插件-PageHelper的使用
- mybatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的简单使用
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件-PageHelper(5.0)的使用
- MyBatis分页插件PageHelper的使用
- MyBatis分页插件PageHelper的使用
- mybatis分页插件PageHelper的使用
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件-PageHelper的使用
- Mybatis分页插件PageHelper的使用
- c++多态性之虚函数与虚表指针
- 【LeeCode】Reorder List 重排链表
- UIButton的相关属性/导航添加按钮
- QApplication::focusWidget()
- http返回值代表含义
- mybatis分页插件PageHelper的使用
- Python学习笔记-17.09.20
- mxnet-Gluon(一):mxnet-Gluon 入门
- win10 Apache+PHP安装与环境配置
- 吴佳明(普空):LVS在大规模网络环境中的应用
- J2EE中基于监听方式的事件处理机制
- POJ 1328.Radar Installation
- 使用zip压缩文件方式安装mysql 5.7
- QT如何捕获全局的键盘事件?