最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis利用分頁(yè)插件PageHelper快速實(shí)現(xiàn)分頁(yè)查詢(xún)

 更新時(shí)間:2021年08月10日 14:29:16   作者:花傷情猶在  
如果你也在用MyBatis,建議嘗試該分頁(yè)插件,這一定是最方便使用的分頁(yè)插件,這篇文章主要給大家介紹了關(guān)于Mybatis利用分頁(yè)插件PageHelper快速實(shí)現(xiàn)分頁(yè)查詢(xún)的相關(guān)資料,PageHelper是一個(gè)Mybatis的分頁(yè)插件,負(fù)責(zé)將已經(jīng)寫(xiě)好的sql語(yǔ)句,進(jìn)行分頁(yè)加工,需要的朋友可以參考下

前言

Mybatis算是對(duì)數(shù)據(jù)庫(kù)操作的利器了。但是在處理分頁(yè)的時(shí)候,Mybatis并沒(méi)有什么特別的方法,一般需要自己去寫(xiě)limit子句實(shí)現(xiàn),成本較高。好在有國(guó)內(nèi)開(kāi)發(fā)者寫(xiě)了一個(gè)PageHelper插件,可以幫助我們快速實(shí)現(xiàn)分頁(yè)查詢(xún)。

官網(wǎng)地址

首先創(chuàng)建一個(gè)Maven項(xiàng)目

導(dǎo)入相關(guān)依賴(lài):

<!--    依賴(lài)列表-->
    <dependencies>
<!--        mysql驅(qū)動(dòng)-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
<!--        單元測(cè)試-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
<!--        pageHelper依賴(lài)-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.1</version>
        </dependency>
<!--        mybatis依賴(lài)-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
<!--        log4j日志依賴(lài)-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

記住導(dǎo)入PageHelper依賴(lài):

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.1</version>
</dependency>

數(shù)據(jù)庫(kù)中創(chuàng)建一張表

設(shè)置Mybatis配置文件

在resources目錄下,創(chuàng)建一個(gè)sqlMapConfig.xml文件,用于做一些全局的mybatis基本的配置,例如數(shù)據(jù)庫(kù)連接信息,事務(wù),mapper映射文件路徑,日志實(shí)現(xiàn),類(lèi)的別名,也包含了分頁(yè)插件的基本配置。

<configuration>
<!--使用外部屬性配置文件 resource:指定類(lèi)路徑下的某個(gè)屬性配置文件-->
	<properties resource="db.properties" />
	<settings>
        <!--日志的實(shí)現(xiàn)是LOG4J-->
		<setting name="logImpl" value="LOG4J" />
	</settings>
	 <!--聲明別名-->
	<typeAliases>
		<package name="com.ren.domain" />
	</typeAliases>
    <!--mybatis的插件配置-->
	<plugins>
		<!-- com.github.pagehelper為PageHelper類(lèi)所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageInterceptor">
			<!-- 表示使用mysql的分頁(yè)方法 -->
			<property name="helperDialect" value="mysql" />
			<!-- 表示當(dāng)頁(yè)碼長(zhǎng)度為0 的時(shí)候,就不進(jìn)行分頁(yè)查詢(xún) -->
			<property name="pageSizeZero" value="true"/>
		</plugin>
	</plugins>
	
	<!-- 配置連接數(shù)據(jù)庫(kù)四要素 -->
	<environments default="dev">
		<environment id="dev">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${driverClassName}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
 
	<mappers>
		<mapper resource="com/ren/mapper/StudentMapper.xml" />
	</mappers>
	
</configuration>

編寫(xiě)pojo實(shí)體類(lèi)和mapper接口和mapper映射文件

Student實(shí)體類(lèi)

package pojo;

public class Student {
    private Integer id;

    private String name;

    private String email;

    private Integer age;

    public Student() {

    }

    public Student(Integer id, String name, String email, Integer age) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

mapper接口

package mapper;

import pojo.Student;

import java.util.List;

public interface StudentMapper {
    //查詢(xún)所有學(xué)生
    List<Student> selectAll();
}

Mapper映射文件

<?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">
<mapper namespace="mapper.StudentMapper">
    <select id="selectAll" resultType="pojo.Student">
        select * from student order by id
    </select>
</mapper>

在sqlMapConfig文件中指定Mapper文件位置

<!--    mapper映射文件位置-->
<mappers>
	<package name="mapper"/>
</mappers>

編寫(xiě)MyBatisUtils

package utils;

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 java.io.IOException;
import java.io.InputStream;

/**
 *  工具類(lèi):創(chuàng)建SqlSession對(duì)象
 */
public class MyBatisUtil {

    private static SqlSessionFactory factory  = null;

    static {

        String config="sqlMapConfig.xml";
        try {
           InputStream inputStream  =Resources.getResourceAsStream(config);
           factory  = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //創(chuàng)建方法,獲取SqlSession對(duì)象
    public static SqlSession getSqlSession(){
        SqlSession session = null;
        if( factory != null ){
            session =factory.openSession();// openSession(true);
        }
        return session;
    }

}

創(chuàng)建測(cè)試類(lèi)

import com.github.pagehelper.PageHelper;
import mapper.StudentMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.Student;
import utils.MyBatisUtil;

import java.util.List;

public class pageHelper_Test {
    @Test
    public void PageHelperTest(){
        //獲取sqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //獲取mapper代理
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        //調(diào)用PageHelper
        PageHelper.startPage(2,2);
        //查詢(xún)所有學(xué)生
        List<Student> studentList = mapper.selectAll();
        //遍歷結(jié)果List集合
        studentList.forEach(student -> System.out.println(student));
        //關(guān)閉sqlSession對(duì)象
        sqlSession.close();
    }
}

查看結(jié)果

可以看到sql語(yǔ)句,在mapper文件中并沒(méi)有寫(xiě)limit,pageHelper已經(jīng)幫我們加上了limit關(guān)鍵字完成了查詢(xún).OK了

總結(jié)

到此這篇關(guān)于Mybatis利用分頁(yè)插件PageHelper快速實(shí)現(xiàn)分頁(yè)查詢(xún)的文章就介紹到這了,更多相關(guān)Mybatis分頁(yè)插件PageHelper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

奉节县| 千阳县| 四平市| 龙岩市| 会昌县| 怀安县| 北海市| 三明市| 澳门| 嘉鱼县| 阿拉善右旗| 双牌县| 曲沃县| 襄城县| 吴旗县| 新津县| 彭泽县| 特克斯县| 玉屏| 淮安市| 淳化县| 法库县| 永修县| 铜鼓县| 潍坊市| 罗山县| 云梦县| 甘洛县| 双桥区| 祁连县| 高淳县| 突泉县| 武清区| 海晏县| 陇川县| 天峨县| 巧家县| 许昌市| 玉环县| 宣城市| 利辛县|