【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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa