【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

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st