Mybatis uso enchufe paginación pagehelper lograr paginación

En uso pagehelper plug-in, el núcleo es el uso del límite de instrucción SQL los datos mostraron mira, mira nos dejó en la forma de aplicar los plug-ins, miramos a través de un pequeño principio de demostración

escenarios de aplicación:

Cuando una consulta para todos los empleados del departamento de información, el uso de la paginación, un cuatro registros, registros y muestra la página actual, para visualizar el número total de registros, el número total de páginas, la página actual.

1. dependencias del proyecto de importación

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

Si no maven proyecto, la importación de éstos paquete de dos tarro, descargar dirección es: https://mvnrepository.com/

jsqlparser-3.1.jar
pagehelper-5.1.10.jar

2. Configurar interceptores, nota que en los plugins typeAliases espalda, dicho muy claramente la fuente

<plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--&lt;!&ndash; config params as the following &ndash;&gt;-->
            <!--<property name="dialect" value="mysql"/>-->
            <property name="reasonable" value="true"/>
            <!--<property name="dialect" value="mysql"/>-->
        </plugin>
    </plugins>

Si no están claras en la fuente de un socio pequeño se puede ver en:

Mybatis fuente de análisis sintáctico (a): a SqlSessionFactory
fuente mybatis análisis sintáctico (B): la SqlSession
mybatis analizar el código fuente (C): objeto obtener y ejecutar xxxMapper

Tabla y JavaBean 3. Base de datos

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

  • EmpInfo
package com.itt.entity;

import java.util.List;

public class EmpInfo extends Department{

    private String id;
    private String name;
    private String age;
    private String job;
    private String phone;
    private String did;

    List<EmpInfo> empInfos;

    public List<EmpInfo> getEmpInfos() {
        return empInfos;
    }

    public void setEmpInfos(List<EmpInfo> empInfos) {
        this.empInfos = empInfos;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getDid() {
        return did;
    }

    public void setDid(String did) {
        this.did = did;
    }

    @Override
    public String toString() {
        return "id:"+this.id+","+"name:"+this.name+","+"age:"+this.age+","+
                "job:"+this.job+","+"phone:"+this.phone+","+"did:"+this.did;
    }

    public EmpInfo(String id, String name, String age, String job, String phone) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.job = job;
        this.phone = phone;
    }

    public EmpInfo(String id, String name, String phone) {
        this.id = id;
        this.name = name;
        this.phone = phone;
    }

    public EmpInfo() {

    }
}

  • Departamento
package com.itt.entity;


public class Department{

    private String did;
    private String dname;


    public Department() {
    }

    public Department(String did, String dname) {
        this.did = did;
        this.dname = dname;
    }

    public String getDid() {
        return did;
    }

    public void setDid(String did) {
        this.did = did;
    }

    public String getDname() {
        return dname;
    }

    public void setDname(String dname) {
        this.dname = dname;
    }

    @Override
    public String toString() {
        return "Department{" +
                "did='" + did + '\'' +
                ", dname='" + dname + '\'' +
                '}';
    }
}

4. Perfil Principal conf.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="db.properties"/>
    <!--全局参数-->
    <settings>
        <!--开启日志-->
        <setting name="logImpl" value="LOG4J"/>
        <setting name="cacheEnabled" value="false"/>
        <!--<setting name="jdbcTypeForNull" value="NUll"/>-->
    </settings>


    <!--设置单个/多个别名-->
    <typeAliases>
        <!--单个别名(别名 忽略大小写)-->
        <!--<typeAlias type="com.itt.entity.EmpInfo" alias="student"/>-->
        <!--批量定义别名,以下会自动将该包中的所有类 批量定义别名:别名就是类名(不带包名的类名)-->
        <package name="com.itt.entity"/>
    </typeAliases>

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--&lt;!&ndash; config params as the following &ndash;&gt;-->
            <!--<property name="dialect" value="mysql"/>-->
            <property name="reasonable" value="true"/>
            <!--<property name="dialect" value="mysql"/>-->
        </plugin>
    </plugins>

    <!--<typeHandlers>-->
        <!--<typeHandler handler="com.itt.converter.BooleanAndIntConverter"-->
                     <!--javaType="boolean" jdbcType="INTEGER"/>-->
    <!--</typeHandlers>-->

    <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>
    <!--配置数据库的支持类-->
    <databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle"/>
    </databaseIdProvider>

    <mappers>
        <package name="com.itt.mapper"/>
    </mappers>
</configuration>

5. Interfaz

 String queryBy(String dname);

 List<EmpInfo> queryBydname(String did);

archivo de asignación 6.EmpInfoMapper.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">

<mapper namespace="com.itt.mapper.EmpInfoMapper">
	<select id="queryBydname" parameterType="String" resultMap="ByDid">
        SELECT e.*  FROM empinfo e INNER JOIN department d
	    ON d.did = e.did WHERE d.did = #{did} order by id desc
    </select>
    <resultMap id="ByDid" type="EmpInfo">
        <id  property="id" column="id" />
        <result property="name" column="name"/>
        <result property="age" column="age"/>
        <result property="job" column="job"/>
        <result property="phone" column="phone"/>
        <result property="did" column="did"/>
    </resultMap>
</mapper>

7. Prueba

    @Test
    public  void queryBydname() throws Exception{
        //Connection - SqlSession操作myBatis

        //config.xml  -> reader
        Reader reader = Resources.getResourceAsReader("conf.xml");

        //reader  ->SqlSession
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();


        EmpInfoMapper mapper = session.getMapper(EmpInfoMapper.class);


        String query = mapper.queryBy("技术部");
        //显示第一页,并且一页显示4条数据
        Page<Object> page = PageHelper.startPage(1, 4);
        List<EmpInfo> list = mapper.queryBydname(query);
        
        for (EmpInfo empInfo : list) {
            System.out.println(empInfo);
        }

        //打印分页信息
        System.out.println("当前页:" + page.getPageNum());
        System.out.println("总数据:" + page.getTotal());
        System.out.println("总页数:" + page.getPages());


        session.close();
    }
  • Los datos originales de la tabla
    Aquí Insertar imagen Descripción
    después de los resultados:
    Aquí Insertar imagen Descripción

Resumen: Aquí hay que señalar que en la escritura:

Página = PageHelper.startPage (1, 4); tiempo, prestar atención a la posición que yo estaba aquí un problema, ha sido incapaz de paginación, principalmente para cuidado! Alentar a los demás!

Publicado 47 artículos originales · ganado elogios 34 · vistas 8868

Supongo que te gusta

Origin blog.csdn.net/weixin_42893085/article/details/105210964
Recomendado
Clasificación