MyBatis——主配置文件的相关内容、使用PageHelper插件进行分页查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MyBatis——主配置文件的相关内容、使用PageHelper插件进行分页查询

文章目录:


1.MyBatis主配置文件

1.1 主配置文件中标签的编写顺序

1.2 使用数据库属性配置文件(包含properties标签)

1.4 settings标签(设置日志)

1.5 typeAliases标签(设置别名,不推荐使用。。。)

1.6 plugins标签(声明插件)

1.7 environment标签(配置环境)

1.8 mappers标签(mapper文件的配置读取)

2.MyBatis中的分页查询

2.1 pom.xml中加入pagehelper依赖 

2.2 mybatis主配置文件中,加入声明插件的标签内容

2.3 dao接口中创建一个方法

2.4 编写dao接口方法对应的 sql 语句(mapper文件)

2.5 编写测试方法

2.6 代码运行结果

1.MyBatis主配置文件


1.1 主配置文件中标签的编写顺序

 <!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, 
 objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>

在以上的这些标签中,我们主要使用的有:👇👇👇 

1.    properties

2.    settings

3.    typeAliases

4.    plugins

5.    environments

6.    mappers

1.2 使用数据库属性配置文件(包含properties标签)

我们需要把数据库的配置信息放到一个单独的文件中,进行独立管理,这个文件的扩展名是 properties

resources目录下,创建 XXX.properties 文件。 👇👇👇

而后,在这个文件中,写入下面的内容,使用 key=value的格式定义数据:👇👇👇(数据库连接的相关信息)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345678

接下来,在mybatis主配置文件中,使用property标签引用外部属性配置文件: 👇👇👇

<!--
     使用外部属性配置文件
     resource: 指定类路径下的某个属性配置文件
-->
<properties resource="jdbc.properties"/>

最后,在mybatis主配置文件中,找到 <dataSource> 标签,将其中的内容进行修改:👇👇👇

使用 ${key} 来获取相应的 key 对应的 value 值。例如 value="${jdbc.driver}",表示此时value="com.mysql.jdbc.Driver"

<dataSource type="POOLED">
    <!--driver:驱动内容-->
    <property name="driver" value="${jdbc.driver}"/>
    <!--连接数据库的url-->
    <property name="url" value="${jdbc.url}"/>
    <!--用户名-->
    <property name="username" value="${jdbc.username}"/>
    <!--密码-->
    <property name="password" value="${jdbc.password}"/>
</dataSource>

1.4 settings标签(设置日志)

  <!--设置日志-->
  <settings>
     <setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>

1.5 typeAliases标签(设置别名,不推荐使用。。。)

  <!--设置别名-->
  <typeAliases>
  </typeAliases>

1.6 plugins标签(声明插件)

  <!--声明插件-->
  <plugins>
      <plugin interceptor="com.github.pagehelper.PageInterceptor" />
  </plugins>

1.7 environment标签(配置环境)

    <!--
         <environments>:配置环境,在这里面可以配置多个 <environment></environment> 子标签
         属性:default,必须是某个<environment>标签的id属性值,表示MyBatis默认连接的数据库
    -->
    <environments default="development">
        <!--
             <environment>:环境标签,表示一个数据库的连接信息
             属性:id是自定义的环境标识,唯一值
        -->
        <environment id="development">
            <!--
                 <transactionManager />:事务管理器
                 属性:type,表示事务管理器的类型
                 属性值:1)JDBC:使用Connection对象,由MyBatis自己完成事务的处理
                       2)MANAGED:管理,表示把事务的处理交给容器实现(由其他软件完成事务的处理)
            -->
            <transactionManager type="JDBC"/>
            <!--
                 <dataSource>:配置数据源:创建Connection对象,连接到数据库
                 属性:type,数据源的类型
                 属性值:1)POOLED,MyBatis会在内存中创建PooledDataSource类,管理多个Connection连接对象,使用的连接池
                       2)UNPOOLED,不使用连接池,MyBatis会在内存中创建UnPooledDataSource类
                       3)JNDI,Java命名和目录服务
            -->
            <dataSource type="POOLED">
                <!--driver:驱动内容-->
                <property name="driver" value="${jdbc.driver}"/>
                <!--连接数据库的url-->
                <property name="url" value="${jdbc.url}"/>
                <!--用户名-->
                <property name="username" value="${jdbc.username}"/>
                <!--密码-->
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

1.8 mappers标签(mapper文件的配置读取)

    <!--
         指定其他mapper文件的位置:目的是可以找到其他mapper文件的sql语句
    -->
    <mappers>
        <!--
             第一种方式:resource="mapper文件的路径"
             优点:文件清晰,加载的文件是明确的,文件位置比较灵活
             缺点:文件比较多,代码量相对就会比较大,管理难度大
        -->
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
        <!--
             第二种方式:使用<package>标签
             name:包名,即mapper文件所在的包名
             特点:把这个包中所有的mapper文件一次加载
             使用要求:1. mapper文件和dao接口在同一目录
                     2. mapper文件和dao接口的名称完全一致
        -->
        <!-- <package name="com.bjpowernode.dao"/> -->
    </mappers>

2.MyBatis中的分页查询


PageHelper用做数据分页,它在你的 sql 语句后面加入分页的 sql 内容。

例如我们使用 mysql 数据库,它就会在 select * from student 后面加上 limit 语句。

其使用步骤如下:👇👇👇 

2.1 pom.xml中加入pagehelper依赖 

<!--PageHelper依赖-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.10</version>
</dependency>

2.2 mybatis主配置文件中,加入声明插件的<plugins>标签内容

  <!--声明插件-->
  <plugins>
     <plugin interceptor="com.github.pagehelper.PageInterceptor" />
  </plugins>

2.3 dao接口中创建一个方法

package com.bjpowernode.dao;
import com.bjpowernode.entity.Student;
import java.util.List;
/**
 *
 */
public interface StudentDao {
    List<Student> selectAllStudent();
}


2.4 编写dao接口方法对应的 sql 语句(mapper文件)

  <select id="selectAllStudent" resultType="com.bjpowernode.entity.Student">
      select * from student order by id
 </select>

2.5 编写测试方法


查询语句之前调用 PageHelper.startPage 静态方法。

除了 PageHelper.startPage 方法外,还提供了类似用法的 PageHelper.offsetPage 方法。

在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个 MyBatis 查询方法会被进行分页。 

    @Test
    public void testPageHelper() {
        SqlSession session = MyBatisUtil.getSqlSession();
        StudentDao studentDao=session.getMapper(StudentDao.class);
        //调用PageHelper的方法
        PageHelper.startPage(1,3);
        List<Student> students=studentDao.selectAllStudent();
        students.forEach( stu-> System.out.println("stu === " + stu));
        session.close();
    }

2.6 代码运行结果

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
85
分享
相关文章
三、MyBatis核心配置文件详解
三、MyBatis核心配置文件详解
48 14
|
1月前
|
十二、MyBatis分页插件
十二、MyBatis分页插件
72 17
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
703 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
5月前
|
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
162 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
mybatis如何实现分页查询?
【10月更文挑战第19天】mybatis如何实现分页查询?
392 3
解决mybatis-plus 拦截器不生效--分页插件不生效
本文介绍了在使用 Mybatis-Plus 进行分页查询时遇到的问题及解决方法。依赖包包括 `mybatis-plus-boot-starter`、`mybatis-plus-extension` 等,并给出了正确的分页配置和代码示例。当分页功能失效时,需将 Mybatis-Plus 版本改为 3.5.5 并正确配置拦截器。
1988 6
解决mybatis-plus 拦截器不生效--分页插件不生效
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
17 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等