MyBatis-Plus分页插件和MyBatisX插件
MyBatis-Plus分页插件和MyBatisX插件
- 六、插件
- 1、分页插件
- a>添加配置类
- b>测试
- 八、代码生成器
- 1、引入依赖
- 2、快速生成
- 十、MyBatisX插件
- 1、新建spring boot工程
- a>引入依赖
- b>配置application.yml
- c>连接MySQL数据库
- d>MybatisX逆向生成
- 2、MyBatisX快速生成CRUD
申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计10418字,阅读大概需要3分钟
更多学习内容, 欢迎关注我的个人公众号:不懂开发的程序猿
相关阅读:
MyBatis-Plus入门案例
MyBatis-Plus基本CRUD
六、插件
1、分页插件
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
a>添加配置类
@MapperScan("com.jerry.mybatisplus.mapper")
@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
b>测试
@Testpublic void testPage(){//设置分页参数Page<User> page = new Page<>(1, 5);userMapper.selectPage(page, null);//获取分页数据List<User> records = page.getRecords();records.forEach(System.out::println);System.out.println("当前页:"+page.getCurrent());System.out.println("每页显示的条数:"+page.getSize());System.out.println("总记录数:"+page.getTotal());System.out.println("总页数:"+page.getPages());System.out.println("是否有上一页:"+page.hasPrevious());System.out.println("是否有下一页:"+page.hasNext());}
八、代码生成器
1、引入依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>
2、快速生成
package com.jerry.mybatisplus;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.Collections;/*** ClassName: FastAutoGeneratorTest* Package: com.jerry.mybatisplus* Description:** @Author jerry_jy* @Create 2023-02-10 16:39* @Version 1.0*/
public class FastAutoGeneratorTest {public static void main(String[] args) {FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mybatis_plus?characterEncoding=utf-8&userSSL=false", "root", "root").globalConfig(builder -> {builder.author("jerry") // 设置作者//.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir("D://mybatis_plus"); // 指定输出目录}).packageConfig(builder -> {builder.parent("com.jerry") // 设置父包名.moduleName("mybatisplus") // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus"));// 设置mapperXml生成路径}).strategyConfig(builder -> {builder.addInclude("user") // 设置需要生成的表名.addTablePrefix("t_", "c_"); // 设置过滤表前缀}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}}
十、MyBatisX插件
MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率 但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表 联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可 以使用MyBatisX插件 MyBatisX一款基于 IDEA 的快速开发插件,为效率而生。
1、新建spring boot工程
a>引入依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.1</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.jerry</groupId><artifactId>mybatisplus</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatisplus</name><description>mybatisplus</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
b>配置application.yml
spring:# 配置数据源信息datasource:# 配置数据源类型type: com.zaxxer.hikari.HikariDataSource# 配置连接数据库的各个信息driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=falseusername: rootpassword: root
c>连接MySQL数据库
(E:/typora/image-20230210173113435.png)]
填好【用户名】、【密码】、【数据库名字】
d>MybatisX逆向生成

填好【模块路径】、【包名】、【实体类名】


2、MyBatisX快速生成CRUD
package com.jerry.mybatisplusx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;import com.jerry.mybatisplusx.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/**
* @author Admin
* @description 针对表【user】的数据库操作Mapper
* @createDate 2023-02-10 17:32:51
* @Entity com.jerry.mybatisplusx.pojo.User
*/
public interface UserMapper extends BaseMapper<User> {int insertSelective(User user);//增int deleteByIdAndName(@Param("id") Long id, @Param("name") String name);//删int updateAgeAndSexById(@Param("age") Integer age, @Param("sex") Integer sex, @Param("id") Long id);//改List<User> selectAgeAndSexByAgeBetween(@Param("beginAge") Integer beginAge, @Param("endAge") Integer endAge);//查List<User> selectAllOrderByAgeDesc();//排序
}

–end–
相关文章:
MyBatis-Plus分页插件和MyBatisX插件
MyBatis-Plus分页插件和MyBatisX插件六、插件1、分页插件a>添加配置类b>测试八、代码生成器1、引入依赖2、快速生成十、MyBatisX插件1、新建spring boot工程a>引入依赖b>配置application.ymlc>连接MySQL数据库d>MybatisX逆向生成2、MyBatisX快速生成CRUD申明…...
年前无情被裁,面试大厂的这几个月…
2月份了,金三银四也即将来临,在这个招聘季,大厂也开始招人,但还是有很多人吐槽说投了很多简历,却迟迟没有回复… 另一面企业招人真的变得容易了吗?有企业HR吐槽,简历确实比以前多了好几倍&…...
基于Java的分片上传功能
起因:最近在工作中接到了一个大文件上传下载的需求,要求将文件上传到share盘中,下载的时候根据前端传的不同条件对单个或多个文件进行打包并设置目录下载。 一开始我想着就还是用老办法直接file.transferTo(newFile)就算是大文件,…...
KDS安装步骤
KDS kinetis design studio 软件 第一步官网(https://www.nxp.com/ 注册账号下载set成功下载软件。 随着AI,大数据这些技术的快速发展,与此有关的知识也普及开来。如何在众多网站中寻找最有价值的信息,如何在最短的时间内获得最新的技…...
JavaSE-线程池(1)- 线程池概念
JavaSE-线程池(1)- 线程池概念 前提 使用多线程可以并发处理任务,提高程序执行效率。但同时创建和销毁线程会消耗操作系统资源,虽然java 使用线程的方式有多种,但是在实际使用过程中并不建议使用 new Thread 的方式手…...
开源代码的寿命为何只有1年?
说实话,如果古希腊的西西弗斯是一个在2016年编写开源代码的开发者,那他会有宾至如归的感觉。著名的西西弗斯处罚,是神话流传下来的,他被迫推一块巨大的石头上山,当登顶之后,只能眼睁睁看着它滚下去…...
完善登录功能--过滤器的使用
系列文章目录 Spring Boot读取配置文件内容的三种方式 Spring Boot自动配置–如何切换内置Web服务器 SpringBoot项目部署 上述为该系列部分文章,想了解更多可看我博客主页哦! 文章目录系列文章目录前言一、创建自定义过滤器LoginCheckFilter二、在启动类…...
CSS基础:属性和关系选择器
字体属性 color 文本颜色 div{ color:red;} div{ color:#ff0000;} div{ color:rgb(255,0,0);} div{ color:rgba(255,0,0,.5);}font-size 文本大小 h1 {font-size:40px;} h2 {font-size:30px;} p {font-size:14px;}注意:chrome浏览器接受最小字体是12px font-we…...
设计模式:原型模式解决对象创建成本大问题
一、问题场景 现在有一只猫tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom猫属性完全相同的10只猫。 二、传统解决方案 public class Cat {private String name;private int age;private String color;…...
驱动开发(二)
一、驱动流程 驱动需要以下几个步骤才能完成对硬件的访问和操作: 模块加载函数 module_init注册主次设备号 <应用程序通过设备号找到设备>驱动设备文件 <应用程序访问驱动的方式> 1、手动创建 (mknod)2、程序自动创建file_oper…...
《狂飙》大结局,这22句经典台词值得细品
最近爆火的热播剧《狂飙》大家都看了吗? 剧情紧凑、演技炸裂、豆瓣评分9.0,可以说是开年评分最高的一部国产剧。 虽然大结局了。 里面有很多经典台词,值得每个人细细品味。 01 这世界不缺梦想 有本事你就去实现它 02 你这么善良 怎么跟坏…...
【计算机网络期末复习】第二章 物理层
✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址: ❤️如果有收获的话,欢迎点…...
多核异构核间通信-mailbox/RPMsg 介绍及实验
1. 多核异构核间通信 由于MP157是一款多核异构的芯片,其中既包含的高性能的A7核及实时性强的M4内核,那么这两种处理器在工作时,怎么互相协调配合呢? 这就涉及到了核间通信的概念了。 IPCC (inter-processor communication contr…...
【Rust日报】2023-02-11 从头开始构建云数据库 RisingWave - 为什么我们从 C++ 转向 Rust...
GTK4发布v0.60gtk4-rs代码库包含GTK4的Rust crates。还有个庞大的GObject库生态系统,其中许多库基于gtk-rs中包含的Rust绑定工具。 特别是:gtk-rs-core,一些核心库的绑定,例如 glib、gio、pango、graphenegstreamer-rs,…...
Linux驱动开发(一)
linux驱动学习记录 一、背景 在开始学习我的linux驱动之旅之前,先提一下题外话,我是一个c语言应用层开发工作人员,在工作当中往往会和硬件直接进行数据的交互,往往遇到数据不通的情况,常常难以定位,而恰巧…...
Spring MVC 之返回数据(静态页面、非静态页面、JSON对象、请求转发与请求重定向)
文章目录1. 默认情况下返回静态页面2. 返回一个非静态页面的数据2.1 ResponseBody 返回页面内容2.2 RestController ResponseBody Controller3. 实现登录功能,返回 JSON 对象3.1 前端使⽤ ajax,后端返回 json 给前端3.2 前端发送 JSON 的标准格式4. 请…...
leetcode-每日一题-2335(简单,贪心)
自己打表看一下过程就可以发现,其实就是每次选两个大的进行--之后秒数加1即可现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。给你一个下标从 0 开始、长度为 3 的整数数组 amount &am…...
Verilog语法之数学函数
Verilog-2005支持一些简单的数学函数,其参数的数据类型只能是integer和real型。 Integer型数学函数 $clog2是一个以2为底的对数函数,其结果向上取整,返回值典型的格式: integer result; result $clog2(n); 最典型的应用就是通过…...
【手撕面试题】JavaScript(高频知识点一)
目录 面试官:请你简述 var、let、const 三者之间的区别? 面试官:请你谈谈对深拷贝与浅拷贝的理解 面试官:输入URL的那一瞬间浏览器做了什么? 面试官:说一说cookie sessionStorage localStorage 区别&am…...
如何用PHP实现消息推送
什么是消息推送 通过服务器自动推送消息到客户端(浏览器,APP,微信)的应用技术。 2. 为什么要使用消息推送技术 通常情况下都是用户发送请求浏览器显示用户需要的信息。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据…...
DeEAR语音情感识别入门必看:三维度(唤醒度/自然度/韵律)原理与Gradio界面实操
DeEAR语音情感识别入门必看:三维度(唤醒度/自然度/韵律)原理与Gradio界面实操 1. 为什么需要语音情感识别 想象一下,当你接到客服电话时,对方的声音是机械冰冷的还是热情自然的?这种差异直接影响沟通效果…...
流水线设计避坑指南:什么时候该用?深度怎么选?看完这篇就懂了
流水线设计实战决策:吞吐率与硬件成本的黄金分割点 在芯片设计和FPGA开发领域,流水线技术就像一把双刃剑——用得好可以大幅提升系统性能,用得不当则可能造成资源浪费甚至引入新的瓶颈。我曾在一个图像处理芯片项目中,因为错误估计…...
影墨·今颜开源可部署方案:私有化AI影像系统建设白皮书
影墨今颜开源可部署方案:私有化AI影像系统建设白皮书 1. 引言:重新定义AI影像生成标准 在数字影像创作领域,我们经常面临一个困境:AI生成的图片往往带有明显的"塑料感",缺乏真实照片的温度和质感。影墨今颜…...
深度解析:SillyTavern如何通过五大革新打造终极AI对话体验?
深度解析:SillyTavern如何通过五大革新打造终极AI对话体验? 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否曾想过,一个AI对话前端能如何超越简单…...
在VSCode中高效使用cl.exe构建和调试活动文件的AI辅助开发实践
在Windows平台上进行C开发,cl.exe是绕不开的核心编译器。很多朋友习惯在VSCode中写代码,但调试时却不得不先打开那个黑底的“Developer Command Prompt for VS”,再在里面启动VSCode,否则就会遇到找不到cl.exe或者链接库失败的经典…...
春晚具身机器人惊艳亮相,具身智能行业即将迎来黄金时代?高薪岗位火热招聘,这份求职指南你值得拥有!
今年春晚,具身又迎来了高光时刻。不少朋友看完后找我调侃,这几家上春晚的公司估值又要拉升了。其中,宇树的武术表演实在惊叹,双截棍、后空翻,把全球机器人运控能力拉升了一个档次,unitree可以说是断层领先。…...
OpenClaw安全防护指南:ollama-QwQ-32B任务执行权限管控
OpenClaw安全防护指南:ollama-QwQ-32B任务执行权限管控 1. 为什么需要关注OpenClaw的安全防护? 去年冬天,我在调试一个自动整理照片的OpenClaw任务时,不小心让AI把整个图片文件夹按修改日期重命名了——包括那些珍贵的原始文件。…...
一站式LLM应用宝库:从新手到专家的AI应用开发指南
一站式LLM应用宝库:从新手到专家的AI应用开发指南 【免费下载链接】awesome-llm-apps Collection of awesome LLM apps with RAG using OpenAI, Anthropic, Gemini and opensource models. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-llm-apps …...
直齿行星齿轮纯扭转非线性动力学建模与动力学方程推导研究:啮合相位对相图、频谱图、分岔图及庞加莱...
直齿行星齿轮纯扭转非线性动力学建模(含3个或4个行星轮),包括动力学方程推导过程,考虑了各啮合齿轮副之间的啮合相位,可出相图,频谱图,分岔图,庞加莱映射。行星齿轮系统的非线性动力学分析总带着点机械工程…...
论文开题不再愁!书匠策AI来助你一臂之力
在学术的浩瀚海洋中,每一位扬帆起航的学子都渴望找到那座指引方向的灯塔,尤其是在撰写论文开题报告这一关键时刻。开题报告,作为论文的起点,不仅承载着研究的方向与目的,更是展现研究者学术素养与创新能力的重要窗口。…...
