1. 程式人生 > >Mybatis的分頁外掛pagehelper的簡單使用

Mybatis的分頁外掛pagehelper的簡單使用

對於使用Mybatis時,最頭痛的就是寫分頁,需要先寫一個查詢count的select語句,然後再寫一個真正分頁查詢的語句,當查詢條件多了之後,會發現真不想花雙倍的時間寫count和select,所以這個時候我們可以使用Mybatis的分頁外掛pagehelper

<!--
    plugins在配置檔案中的位置必須符合要求,否則會報錯,順序如下:
    properties?, settings?,
    typeAliases?, typeHandlers?,
    objectFactory?,objectWrapperFactory?,
    plugins?,
    environments?, databaseIdProvider?, mappers?
-->
<!-- 配置分頁攔截器外掛:攔截sql語句 -->
<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 使用下面的方式配置引數,後面會有所有的引數介紹 -->
			<property name="supportMethodsArguments" value="true"/>
	</plugin>
</plugins>

接下來使用一個例項來測試:
實體類:

public class Emp {
	private int empno;
	private String ename;
	private String job;
	private int sal;

	public int getSal() {
		return sal;
	}
	public void setSal(int sal) {
		this.sal = sal;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public int getEmpno() {
		return empno;
	}
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	@Override
	public String toString() {
		return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", sal=" + sal + "]";
	}
}

介面類:

public interface EmpMapper {
	
	public List<Emp> queryEmp(String name);
	public List<Emp> queryEmp1(String name,@Param("pageNum") int pageNum,@Param("pageSize") int pageSize);
}

測試類:

public class TestMybatis {
	// 獲取SqlSession物件
	public static SqlSession getSession() {
		/*這裡的路徑可能你門要改*/
		String resource = "config.xml";
		InputStream resourceAsStream = TestMybatis.class.getResourceAsStream(resource);
		// session工廠 負責產生會話
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
		// 會話就是打開了和資料庫的連結
		SqlSession openSession = sqlSessionFactory.openSession();
		return openSession;
	}
	
	/**
	 * 
	 * 物理分頁(推薦使用)
	 */
	@Test
	public void test() {
		SqlSession session = getSession();
		EmpMapper mapper = session.getMapper(EmpMapper.class);
		
		// 引數是(頁數,每頁的資料量)
		PageHelper.startPage(0, 3);
		
		// 根據分頁將查詢出的資料存到List裡面
		List<Emp> queryEmp = mapper.queryEmp("%%");
		System.out.println(queryEmp.size());
		
		// 查詢出總資料量
		PageInfo pi = new PageInfo(queryEmp);
		System.out.println(pi.getTotal());
	}
	
	
	/**
	 * 	引數中的兩個分頁的值必須在介面中打上固定的別名
	 * 		同時在configxml中的配置裡配置屬性:supportMethodsArguments=true
	 * 物理分頁
	 */
	
	@Test
	public void test1() {
		SqlSession session = getSession();
		EmpMapper mapper = session.getMapper(EmpMapper.class);
		List<Emp> queryEmp1 = mapper.queryEmp1("%小%", 2, 10);
		System.out.println(queryEmp1.size());
		// 查詢出總資料量
		PageInfo pi = new PageInfo(queryEmp1);
		System.out.println(pi.getTotal());
	}
}

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>
	<!-- 這裡是資原始檔路徑 -->
	<properties resource="jdbc.properties"></properties>
	<!-- 打印出執行日誌 -->
	<settings>
		<setting name="logImpl" value="STDOUT_LOGGING" />
	</settings>

	<!-- 配置分頁攔截器外掛:攔截sql語句 -->
	<plugins>
		<plugin interceptor="com.github.pagehelper.PageInterceptor">
			<property name="supportMethodsArguments" value="true"/>
		</plugin>
	</plugins>

	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${jdbcDriver}" />
				<property name="url" value="${jdbcUrl}" />
				<property name="username" value="${jdbcUsername}" />
				<property name="password" value="${jdbcPassword}" />
			</dataSource>
		</environment>
	</environments>

	<mappers>
		<mapper resource="com/pk/lesson04/pagehelper/empMapping.xml"></mapper>
	</mappers>
</configuration>

與介面對應的對映xml檔案: empMapping.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 對映檔案規範: namespace屬性不能少 sql語句 >>查詢 必須告知單行返回的型別 -->
<mapper namespace="com.pk.lesson04.pagehelper.EmpMapper">
	
	<select id="queryEmp" resultType="com.pk.lesson04.pagehelper.Emp">
		select * from emp where ename like #{0}
	</select> 
	
	<select id="queryEmp1" resultType="com.pk.lesson04.pagehelper.Emp">
		select * from emp where ename like #{0}
	</select> 
</mapper>

相關推薦

mybatis外掛pageHelper簡單實用

工作的框架spring springmvc mybatis3 首先使用分頁外掛必須先引入maven依賴,在pom.xml中新增如下 <!-- 分頁助手 --> <dependency> <groupId>com.githu

Mybatis外掛PageHelper簡單使用

開發十年,就只剩下這套架構體系了! >>>   

mybatis 外掛PageHelper簡單使用

分頁方式的分類: 邏輯分頁 物理分頁 MyBatis-PageHelper 的使用: 首先在pom.xml配置檔案中增加相關的外掛。 外掛地址:https://github.com/pagehelper/Mybatis-PageHelper <depende

mybatis外掛PageHelper簡單使用

外掛叫做PageHelper如果你也在用Mybatis,建議嘗試該分頁外掛,這個一定是最方便使用的分頁外掛。 該外掛目前支援Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種資料庫分頁。 使用方法: 第一步:匯入mybatis的分頁jar包。(

SpringBoot整合MyBatis外掛PageHelper

原創作品,可以轉載,但是請標註出處地址:https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分頁外掛PageHelper 步驟 第一步:首先整合MyBatis 參照之前SpringBoot整合MyBatis.md 第二步

Spring Boot實踐——Mybatis外掛PageHelper的使用

出自:https://blog.csdn.net/csdn_huzeliang/article/details/79350425 在springboot中使用PageHelper外掛有兩種較為相似的方式,接下來我就將這兩種方式進行總結。 方式一:使用原生的PageHelper 1.在

【防坑指南】使用Mybatis外掛PageHelper為什麼PageInfo物件出現null的原因

在mybatis中,先匯入pagehelper.jar所需的jar包,然後在sqlMapConfig,xml中配置外掛 <plugins> <!-- com.github.pagehelper為PageHelper類所在包名 --> <plug

Mybatis外掛PageHelper的配置和使用方法

前言 在web開發過程中涉及到表格時,例如dataTable,就會產生分頁的需求,通常我們將分頁方式分為兩種:前端分頁和後端分頁。 前端分頁 一次性請求資料表格中的所有記錄(ajax),然後在前端快取並且計算count和分頁邏輯,一般前端元件(例如dataTable)會提

MyBatis外掛PageHelper的使用

準備工作 在pom.ml中引入依賴 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --> <dependency&

Mybatis外掛PageHelper使用

MyBatis分頁外掛 Author:SimpleWu 在mybatis中我們需要實現分頁功能,如果我們連線的是mysql我們就要寫mysql的分頁sql,連線oracle就要寫oracle的sql語句,這是很不友好的,而我們針對各種不同的資料庫的分頁我們有一個外掛PageHelper PageHelpe

基於Mybatis外掛PageHelper實現功能

使用PageHelper外掛實現分頁功能 分頁的功能幾乎是所有專案必備的功能,在SSM(spring 、springmvc、mybatis)組織的專案中如何實現分頁呢? 下面介紹一種基於mybatis的分頁外掛PageHelper來幫助我們實現分頁的功能。

MyBatisMyBatis外掛PageHelper的使用

  好多天沒寫部落格了,因為最近在實習,大部分時間在熟悉實習相關的東西,也沒有怎麼學習新的東西,這週末學習了MyBatis的一個分頁外掛PageHelper,雖然沒有那麼的強大(我在最後會說明它的缺

MyBatis 外掛 PageHelper 入門介紹

1.簡介 官網:https://pagehelper.github.io/ PageHelper可以說是目前最流行的MyBatis分頁外掛了,它使用起來非常簡單且提供一整套的解決方案。以下,我們以傳統Spring專案為例,介紹如何進行使用。SpringBoot的

05 mybatis外掛pageHelper的使用

1.匯入座標 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version&g

Mybatis外掛PageHelper

1.說明 如果你也在用Mybatis,建議嘗試該分頁外掛,這個一定是最方便使用的分頁外掛。 該外掛目前支援Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種

Mybatis外掛——PageHelper使用與原理介紹

推薦一款Mybatis分頁外掛 以前也寫過一篇博文介紹Mybatis的外掛,以及如何通過Mybatis的外掛功能實現一個自定義的分頁外掛,但是那個外掛的侵入性是比較大的。前段時間遇到了

Mybatis外掛-PageHelper簡介

dialect:預設情況下會使用 PageHelper 方式進行分頁,如果想要實現自己的分頁邏輯,可以實現 Dialect(com.github.pagehelper.Dialect) 介面,然後配置該屬性為實現類的全限定名稱。 下面幾個引數都是針對預設 dialect 情況下的引數。使用自定義 dia

Spring中整合Mybatis外掛PageHelper

1. 使用Maven方式引入分頁外掛 在pom.xml中新增如下依賴: <dependency> <groupId>com.github.pagehelper</groupId> <artif

easyui + mybatis 外掛 PageHelper 完成顯示功能(SpringMVC + mybatis 框架)

1、使用 easyUI datagrid 完成前臺分頁展示 <table id="dg" title="產品管理" style="width:700px;height:550px"> <thead>

Mybatis外掛-PageHelper(5.0)的使用

轉:http://blog.csdn.net/u012728960/article/details/50791343 maven依賴 <!-- pagehelper分頁外掛 --> <dependency> <groupId>com