一.参考文献
1.GitHub:https://github.com/pagehelper/Mybatis-PageHelper
3.Mybatis 数据库物理分页插件 PageHelper
二.使用方法
1.导入依赖(用的maven)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
2.配置(可以在mybatis中或者spring中配置)
<!--2)pegehelperf分页插件配置-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
3.使用(测试代码)
@Test
public void testQueryAll() {
PageHelper.startPage(1,5 );
List<Discuss> discussList = discussDao.queryAll();
PageInfo<Discuss> p=new PageInfo<>(discussList);
System.out.println(p.getList());
for (Discuss discuss : discussList) {
System.out.println(discuss);
}
// 测试通过
}
4.说明:pagehelper会拦截mybatis的查询语句,在其中加入分页查询sql,所以我们写查询语句可以直接写查询所以的,不需要写limit(mysql),从而实现物理分页。
5.GitHub官方文档写的非常详细,这里只是我写个自己看的,仅供参考。
6.注意事项:
6.1 mybatis的查询语句末尾不要加分号,不然会报错,下面代码加了分号,pagehelper拦截后,会直接在后面插入sql,如果末尾有分号就会导致sql在中间,报错
<select id="queryAll" resultMap="productsResultMap">
SELECT
* From
shop_products;
</select>
相关说明:如下文献来源
一、原因
在程序运行中,当执行sql后总是报无效字符错误;但是把程序放在pl/sql中执行又没有错误。让我很纳闷!于是我开始查找资料,然后我终于发现了问题。
二、问题剖析
原来在程序中;如果你在程序里面写sql,就不要加分号,在程序里面编译器会把分号当做sql本身的一部分,所以会报错。
如果是在查询工具里面(比如plsql),这个时候可以加上分号,在工具里面已经做过预处理,分号是个分隔符,看到分号就标志着本条sql语句结束了;
因此java中sql语句不能加分号。