【Mybatis】批量映射优化 分页插件PageHelper 逆向工程插件MybatisX

本文主要是介绍【Mybatis】批量映射优化 分页插件PageHelper 逆向工程插件MybatisX,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、Mapper批量映射优化
  • 二、插件和分页插件PageHelper
    • 2.1 插件机制和PageHelper插件介绍
    • 2.2 PageHelper插件使用
  • 三、逆向工程和MybatisX插件
    • 3.1 ORM思维介绍
    • 3.2 逆向工程
    • 3.3 逆向工程插件MyBatisX使用
  • 总结


一、Mapper批量映射优化

  • 需求:
    Mapper 配置文件很多时,在全局配置文件中一个一个注册太麻烦

  • 配置方式
    Mybatis 允许在指定 Mapper 映射文件时,只指定其所在的包:

    <mappers><package name="com.wake.mapper"/></mappers>

此时这个包下的所有 Mapper 配置文件将被自动加载、注册

  • 资源创建要求
      1. 要求 mapper.xml 文件 和 mapper接口 的命名必须相同
      1. 最终打包后的位置要一致,都需要在指定的包地址下
      • resources 文件夹创建对应的文件夹结构 (推荐)
      • ② xml文件创建在接口所在的包内,在添加pom.xml 配置(麻烦不推荐)
    • 注意:resources 下直接创建多层文件夹 使用 / 分割,不使用.

实例:
1
编译后:
1

二、插件和分页插件PageHelper

2.1 插件机制和PageHelper插件介绍

插件可以在用于语句执行过程中进行拦截,并允许通过自定义处理程序来拦截和修改 SQL 语句、映射语句的结果等。
1

Mybatis-PageHelper 使用文档 Github

使用插件,我们就可以不用自己计算 limit 分页
1

2.2 PageHelper插件使用

  • pom.xml 导入依赖
        <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11</version></dependency>
  • mybatis-config.xml 配置分页插件
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="helperDialect" value="mysql"/></plugin>
</plugins>

其中,com.github.pagehelper.PageInterceptor 是 PageHelper 插件的名称,dialect 属性用于指定数据库类型(支持多种数据库)

从标签 <configuration> 中确定 <plugins> 放在哪个位置
1

  • 插件使用
    在查询方法中使用分页:

  • xml

<!--    List<Employee> queryAll();      -->
<mapper namespace="com.wake.mapper.EmployeeMapper"><select id="queryAll" resultType="employee"><!--  正常编写,结尾不加分号;  -->select * from t_emp where emp_salary > 100</select>
</mapper>
    @Testpublic void test(){EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);// 调用之前 , 先设置分页数据(当前是第几页,每页显示多少条数据)PageHelper.startPage(1,2);// 注意不能将两条查询装到一个分页区List<Employee> employeeList = employeeMapper.queryAll();//将查询的数据封装到一个PageInfo的分页实体类(一共多少页,一共多少条等)PageInfo<Employee> employeePageInfo = new PageInfo<>(employeeList);// 获取当前页数据List<Employee> list = employeePageInfo.getList();System.out.println("list: "+list);// 获取总页数int pages = employeePageInfo.getPages();System.out.println("pages: " + pages);// 获取总条数long total = employeePageInfo.getTotal();System.out.println("total: " + total);int pageNum = employeePageInfo.getPageNum();int pageSize = employeePageInfo.getPageSize();System.out.println("当前第:"+pageNum+" 页,每页显示:"+pageSize+" 条");}

1

三、逆向工程和MybatisX插件

3.1 ORM思维介绍

ORM(Object-Relational Mapping,对象-关系映射)是一种将数据库和面向对象编程语言中的对象之间进行转换的技术。
让我们可以使用面向对象思维进行数据库操作。
1
期望半自动orm框架,也能实现单表的crud自动生成
使用逆向工程:半自动orm -》全自动orm

3.2 逆向工程

  • MyBatis 的逆向工程是一种自动化生成持久层代码和映射文件的工具,
  • 它可以根据数据库表结构和设置的参数生成对应的实体类、Mapper.xml 文件、Mapper 接口等代码文件

注意:逆向工程只能生成单表crud的操作,多表查询依然需要我们自己编写!

3.3 逆向工程插件MyBatisX使用

MyBatisX 是一个 MyBatis 的代码生成插件,可以通过简单的配置和操作快速生成 MyBatis Mapper、pojo 类和 Mapper.xml 文件。

  • 安装插件:
    1

  • IDEA中连接数据库

  • 选择需要创建CRUD的表
    1

  • 填写信息
    在这里插入图片描述
    1

  • 结果显示
    1


总结

核心点掌握目标
mybatis基础使用流程, 参数输入,#{} ${},参数输出
mybatis多表实体类设计,resultMap多表结果映射
mybatis动态语句Mybatis动态语句概念, where , if , foreach标签
mybatis扩展Mapper批量处理,分页插件,逆向工程

这篇关于【Mybatis】批量映射优化 分页插件PageHelper 逆向工程插件MybatisX的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777447

相关文章

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消