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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 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 代码运行结果

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
5月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1011 1
Spring boot 使用mybatis generator 自动生成代码插件
|
3月前
|
SQL Java 数据库连接
MyBatis的配置文件中定义类型别名(type aliases)的技巧。
类型别名提供了一种便捷的方式来引用复杂的全限定类名。通过使用 `<package>`标签进行自动扫描或使用 `<typeAlias>`标签手动指定,可以在整个MyBatis配置中提高清晰度和维护性。无论是简化mapper文件中的配置,还是提高整体的配置可读性,类型别名都是一个非常有用的配置工具。
179 0
|
6月前
|
SQL Java 数据安全/隐私保护
发现问题:Mybatis-plus的分页总数为0,分页功能失效,以及多租户插件的使用。
总的来说,使用 Mybatis-plus 确实可以极大地方便我们的开发,但也需要我们理解其工作原理,掌握如何合适地使用各种插件。分页插件和多租户插件是其中典型,它们的运用可以让我们的代码更为简洁、高效,理解和掌握好它们的用法对我们的开发过程有着极其重要的意义。
679 15
|
8月前
|
XML Java 数据库连接
三、MyBatis核心配置文件详解
三、MyBatis核心配置文件详解
191 15
|
9月前
|
XML SQL Java
十二、MyBatis分页插件
十二、MyBatis分页插件
276 17
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
1380 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
1846 5
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
8月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
685 0
|
10月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
459 2
下一篇
oss云网关配置