PageHelper分页

至少使用JDK8版本,请下载JDK8或者更高版本: 下载以及配置JDK环境

因为是第三方插件,所以需要额外的jar包,都在右上角提供了下载:pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar

配置插件

在mybatis-config.xml中,添加15-19行的代码,表示开启PageHelper插件
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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>
     <settings> 
             <!-- 打开延迟加载的开关 --> 
             <setting name= "lazyLoadingEnabled"  value= "true"  /> 
             <!-- 将积极加载改为消息加载即按需加载 --> 
             <setting name= "aggressiveLazyLoading"  value= "false" /> 
         </settings>   
     <typeAliases>
       < package  name= "com.how2java.pojo" />
     </typeAliases>
     <plugins>
         <plugin interceptor= "com.github.pagehelper.PageInterceptor" >
             
         </plugin>
     </plugins>     
     <environments  default = "development" >
         <environment id= "development" >
             <transactionManager type= "JDBC" />
             <dataSource type= "POOLED" >
             <property name= "driver"  value= "com.mysql.jdbc.Driver" />
             <property name= "url"  value= "jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8" />
             <property name= "username"  value= "root" />
             <property name= "password"  value= "admin" />
             </dataSource>
         </environment>
     </environments>
     <mappers>
         <mapper resource= "com/how2java/pojo/Category.xml" />
         <mapper  class = "com.how2java.mapper.CategoryMapper" /> 
         <mapper  class = "com.how2java.mapper.ProductMapper" /> 
     </mappers>
   
</configuration>

分页查询

查询很有意思,只需要在执行查询所有的调用之前,执行一条语句即可:
 
PageHelper.offsetPage(0, 5);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package  com.how2java;
   
import  java.io.IOException;
import  java.io.InputStream;
import  java.util.List;
 
import  org.apache.ibatis.io.Resources;
import  org.apache.ibatis.session.SqlSession;
import  org.apache.ibatis.session.SqlSessionFactory;
import  org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
import  com.github.pagehelper.PageHelper;
import  com.how2java.pojo.Category;
   
public  class  TestMybatis {
     public  static  void  main(String[] args)  throws  IOException, InterruptedException {
         String resource =  "mybatis-config.xml" ;
         InputStream inputStream = Resources.getResourceAsStream(resource);
         SqlSessionFactory sqlSessionFactory =  new  SqlSessionFactoryBuilder().build(inputStream);
         SqlSession session = sqlSessionFactory.openSession();
      
         PageHelper.offsetPage( 0 5 );
 
         List<Category> cs = session.selectList( "listCategory" );
         for  (Category c : cs) {
             System.out.println(c.getName());
         }
 
         session.commit();
         session.close();
     }
}

 

获取总数

通过第31行的代码
 
PageInfo page= new PageInfo<>(cs);
 

就可以获取分页信息,包括总数以及其他的
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package  com.how2java;
   
import  java.io.IOException;
import  java.io.InputStream;
import  java.util.List;
 
import  org.apache.ibatis.io.Resources;
import  org.apache.ibatis.session.SqlSession;
import  org.apache.ibatis.session.SqlSessionFactory;
import  org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
import  com.github.pagehelper.PageHelper;
import  com.github.pagehelper.PageInfo;
import  com.how2java.pojo.Category;
   
public  class  TestMybatis {
     public  static  void  main(String[] args)  throws  IOException, InterruptedException {
         String resource =  "mybatis-config.xml" ;
         InputStream inputStream = Resources.getResourceAsStream(resource);
         SqlSessionFactory sqlSessionFactory =  new  SqlSessionFactoryBuilder().build(inputStream);
         SqlSession session = sqlSessionFactory.openSession();
      
         PageHelper.offsetPage( 0 5 );
 
         List<Category> cs = session.selectList( "listCategory" );
         for  (Category c : cs) {
             System.out.println(c.getName());
         }
         
         PageInfo pageInfo =  new  PageInfo<>(cs);
         System.out.println( "总数:" +pageInfo.getTotal());
         System.out.println(pageInfo);
 
         session.commit();
         session.close();
     }
}

转载于:https://www.cnblogs.com/chinaifae/p/10195477.html

Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测 sonarQube能带来什么? Developers' Seven Deadly Sins 1.糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试 2.重复 显然程序中包含大量复制粘贴的代码是质量低下的 sonar可以展示源码中重复严重的地方 3.缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率 4.没有代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写 5.没有足够的或者过多的注释 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷 6.潜在的bug sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug 7.糟糕的设计(原文Spaghetti Design,意大利面式设计) 通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系 可以检测自定义的架构规则 通过sonar可以管理第三方的jar包 可以利用LCOM4检测单个任务规则的应用情况 检测耦合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值