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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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 代码运行结果

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
10天前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
22 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
SQL Java 数据库连接
解决mybatis-plus 拦截器不生效--分页插件不生效
本文介绍了在使用 Mybatis-Plus 进行分页查询时遇到的问题及解决方法。依赖包包括 `mybatis-plus-boot-starter`、`mybatis-plus-extension` 等,并给出了正确的分页配置和代码示例。当分页功能失效时,需将 Mybatis-Plus 版本改为 3.5.5 并正确配置拦截器。
342 6
解决mybatis-plus 拦截器不生效--分页插件不生效
|
1月前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
2月前
|
Java 数据库 Spring
MyBatisPlus分页插件在SpringBoot中的使用
这篇文章介绍了如何在Spring Boot项目中配置和使用MyBatis-Plus的分页插件,包括创建配置类以注册分页拦截器,编写测试类来演示如何进行分页查询,并展示了测试结果和数据库表结构。
MyBatisPlus分页插件在SpringBoot中的使用
|
3月前
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
319 0
IDEA插件-Mybatis Log Free日志替换
|
4月前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
4月前
|
SQL Java 数据库连接
IDEA插件(MyBatis Log Free)
IDEA插件(MyBatis Log Free)
286 0
|
10天前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
36 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
17天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
136 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个