当前位置: 首页 > news >正文

mybatisX插件的使用,以及打包成配置

装mybatisX插件;
idea连接数据库;
点击mybatisx-generator,设置自己装mybatisX插件;
idea连接数据库;
点击mybatisx-generator,设置自己要的包和类;

如果要把自己的配置设置成一个自定义模板:

1、 使用idea链接数据库
要的包和类;

如果要把自己的配置设置成一个自定义模板:

一、使用idea链接数据库

在这里插入图片描述
在这里插入图片描述

二、安装mybatis-X插件

File–>Settings–>Plugins–>Marketplace,=,搜索MyBatisX–>install
在这里插入图片描述

三、生成代码内容

3.1 配置本地驱动包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 侧边栏打开数据库,选择要生成代码的表格,在表名上右击,点击MybatisX-Generator

在这里插入图片描述

3.3 设置类名生成规则及生成代码的路径

路径的生成按照物理路径是: module path --》 base path --》base package
(这里注意如果想实体类带Entity后缀,在extra class suffix一栏填上Entity即可)
在这里插入图片描述

3.4 生成代码

在这里插入图片描述
template:

  • custom-model-swagger:生成实体文件,属性上会自动增加swagger的相关注解,
  • default-all:生成实体文件、xml文件和dao层接口文件, 默认会生成常用的增删改查到的方法
  • mybatis-plus3:生成实体文件、xml文件、dao层接口文件、 service层接口文件和service层接口实现文件

3.4.1 mybatis-plus3案例

在这里插入图片描述
在这里插入图片描述

3.4.2 效果代码

实体类:
在这里插入图片描述

mapper接口:
在这里插入图片描述

service层:
在这里插入图片描述
在这里插入图片描述

xml文件:
在这里插入图片描述

四、配置文件

4.1 默认的mybatis-plus3模板

模板文件包含:
在这里插入图片描述

4.1.1 .meta.xml以及xx.ftl概览

在这里插入图片描述
从上图中可以看到,此模板生成了四个文件,加上我们的entity,一共是5个。

serviceInterface.ftl:
在这里插入图片描述
serviceImpl.ftl:

package ${baseInfo.packageName};import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableClass.fullClassName};
import ${serviceInterface.packageName}.${serviceInterface.fileName};
import ${mapperInterface.packageName}.${mapperInterface.fileName};
<#if baseService??&&baseService!="">
import ${baseService};<#list baseService?split(".") as simpleName><#if !simpleName_has_next><#assign serviceSimpleName>${simpleName}</#assign></#if></#list>
</#if>
import org.springframework.stereotype.Service;/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service实现
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}>implements ${serviceInterface.fileName}{}

mapperInterface.ftl:

package ${mapperInterface.packageName};import ${tableClass.fullClassName};
<#if tableClass.pkFields??><#list tableClass.pkFields as field><#assign pkName>${field.shortTypeName}</#assign></#list>
</#if>
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Mapper
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
* @Entity ${tableClass.fullClassName}
*/
public interface ${mapperInterface.fileName} extends BaseMapper<${tableClass.shortClassName}> {}

mapperXml.ftl:
在这里插入图片描述

4.2 我的mybatis-plus3模板

要点:把service改为repository,作为仓储层,而不是业务层。
在这里插入图片描述
.meta.xml:

<?xml version="1.0" encoding="utf-8" ?>
<templates><template><property name="configName" value="repositoryInterface"/><property name="configFile" value="repositoryInterface.ftl"/><property name="fileName" value="${domain.fileName}Repository"/><property name="suffix" value=".java"/><property name="packageName" value="${domain.basePackage}.domain.gateway.db"/><property name="encoding" value="${domain.encoding}"/><property name="basePath" value="${domain.basePath}"/></template><template><property name="configName" value="repositoryImpl"/><property name="configFile" value="repositoryImpl.ftl"/><property name="fileName" value="${domain.fileName}RepositoryImpl"/><property name="suffix" value=".java"/><property name="packageName" value="${domain.basePackage}.infrastructure.repository"/><property name="encoding" value="${domain.encoding}"/><property name="basePath" value="${domain.basePath}"/></template><template><property name="configName" value="mapperInterface"/><property name="configFile" value="mapperInterface.ftl"/><property name="fileName" value="${domain.fileName}Mapper"/><property name="suffix" value=".java"/><property name="packageName" value="${domain.basePackage}.infrastructure.repository.mybatis.mapper"/><property name="encoding" value="${domain.encoding}"/><property name="basePath" value="${domain.basePath}"/></template><template><property name="configName" value="mapperXml"/><property name="configFile" value="mapperXml.ftl"/><property name="fileName" value="${domain.fileName}Mapper"/><property name="suffix" value=".xml"/><property name="packageName" value="mapper"/><property name="encoding" value="${domain.encoding}"/><property name="basePath" value="src/main/resources"/></template>
</templates>

mapperInterface.ftl:
略,和4.1相同;

mapperXml.ftl:
略,和4.1相同;

repositoryInterface.ftl:

package ${baseInfo.packageName};import ${tableClass.fullClassName};
<#if baseService??&&baseService!="">
import ${baseService};<#list baseService?split(".") as simpleName><#if !simpleName_has_next><#assign serviceSimpleName>${simpleName}</#assign></#if></#list>
</#if>
import com.baomidou.mybatisplus.extension.service.IService;/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
public interface ${baseInfo.fileName} extends IService<${tableClass.shortClassName}> {}

其实和4.1也是一样的,不同的是.meta.xml里的参数变了:
在这里插入图片描述
repositoryImpl.ftl:

package ${baseInfo.packageName};import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableClass.fullClassName};
import ${repositoryInterface.packageName}.${repositoryInterface.fileName};
import ${mapperInterface.packageName}.${mapperInterface.fileName};
<#if baseService??&&baseService!="">
import ${baseService};<#list baseService?split(".") as simpleName><#if !simpleName_has_next><#assign serviceSimpleName>${simpleName}</#assign></#if></#list>
</#if>
import org.springframework.stereotype.Service;/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service实现
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}> implements ${repositoryInterface.fileName}{}

同上,和4.1也是一样的,不同的两点:

  1. 是.meta.xml里的参数变了;
  2. import里的导入类全路径引用变了;

在这里插入图片描述
在这里插入图片描述

五、打包配置,一键给其他人复用

在这里插入图片描述
以我的【mybatis-plus3-20230824】为例:
在这里插入图片描述
其他人把压缩包解压到对应的位置即可。

六、我的模板

等待补充。

相关文章:

mybatisX插件的使用,以及打包成配置

装mybatisX插件&#xff1b; idea连接数据库&#xff1b; 点击mybatisx-generator&#xff0c;设置自己装mybatisX插件&#xff1b; idea连接数据库&#xff1b; 点击mybatisx-generator&#xff0c;设置自己要的包和类&#xff1b; 如果要把自己的配置设置成一个自定义模板&a…...

【初阶数据结构】线性表之单链表

文章目录 前言 一、单链表的概念与结构 1.概念 2.结点 3.性质 二、实现单链表 1.结构的定义 2.链表的打印和结点的申请 3.单链表的尾插和头插 4.单链表的尾删和头删 5.单链表的查找 6.指定位置之前插入数据和指定位置之后插入数据 7.删除pos结点和删除pos之后的结…...

CentOS7通过yum安装JDK

CentOS7通过yum安装JDK 1、卸载自带的JDK 查看已安装的JDK rpm -qa | grep java删除已安装的JDK yum -y remove java-1.8.0-openjdk*验证是否删除成功 查不到版本信息则已删除成功 java -version2、安装JDK sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-deve…...

c# 常见的几种取整场景

软件取整&#xff0c;通常指的是在计算机软件中对数值进行取整操作&#xff0c;即将一个浮点数或小数转换为整数&#xff0c;同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见&#xff0c;不同的取整方法适用于不同的场景。 常见的取整方法 向零取整&#xff08…...

数据库回滚:大祸临头时

原文地址 什么是数据库回滚&#xff1f; 数据库技术中&#xff0c;回滚是通过撤销对数据库所做的一项或多项更改&#xff0c;将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。 什么时候需要数据库回滚&#xff1f; 数据库回滚在以下几个场景中很…...

【GoLang】两个字符串如何比较大小?以及字典顺序的比较规则

在 Go 语言中&#xff0c;字符串的比较是基于字典顺序进行的。 字典顺序的比较规则&#xff1a; 比较两个字符串从左到右逐个字符的Unicode码点值&#xff0c; 若比较结果不相等则将此结果作为字符串大小的结果&#xff0c; 若比较结果相等则比较下一位&#xff0c; 若其中一个…...

5G学习笔记之SNPN系列之UE入网和远程配置

参考&#xff1a;3GPP 23.501 5.30.2.10 Onboarding of UEs for SNPNs 小小协议搬运工 目录 0. NPN系列 1. 概述 2. SNPN作为ONN 2.1 DCS参与的入网主鉴权 2.2 DCS不参与的入网主鉴权 2.3 UE入网 3. PLMN作为ONN 4. 远程配置 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】…...

C#版OpenCv常用函数大全

OpenCvSharp 是 OpenCV 的NET封装&#xff0c;提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 1. 图像读取与显示 Cv2.ImRead 功能&#xff1a;读取图像文件并返回一个 Mat 对象。用法&#xff1a;Mat image Cv2.ImRead("path/to/image.jpg&…...

Spring Boot教程之五十二:CrudRepository 和 JpaRepository 之间的区别

Spring Boot – CrudRepository 和 JpaRepository 之间的区别 Spring Boot建立在 Spring 之上&#xff0c;包含 Spring 的所有功能。由于其快速的生产就绪环境&#xff0c;使开发人员能够直接专注于逻辑&#xff0c;而不必费力配置和设置&#xff0c;因此如今它正成为开发人员…...

蓝桥杯备考:数据结构之栈 和 stack

栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈&#xff1a;没有任何元素 入栈&#xff1a;插入元素 出栈&#xff1a;删除元素 栈本身就是一个线性表&#xff0c;我们可以写一个足够大的数组来实现栈 除此之外&#xff0c;我们还需要变量n来记录…...

solidity基础 -- 映射

在区块链的智能合约开发领域&#xff0c;Solidity 作为以太坊上最主流的编程语言之一&#xff0c;拥有诸多强大特性助力开发者构建复杂且高效的去中心化应用。其中&#xff0c;映射&#xff08;Mapping&#xff09;是一个极为关键的数据结构&#xff0c;它为合约中的数据存储与…...

Angular 11课程实践:构建高效单页应用的支持代码

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;Angular 11是Google支持的前端框架&#xff0c;适合构建复杂的单页应用&#xff08;SPA&#xff09;。本课程将深入介绍Angular核心特性&#xff0c;如组件化、依赖注入、数据绑定和路由&#xff0c;并且涵盖Ang…...

测试用例颗粒度说明

当我们在编写测试用例时&#xff0c;总是会遇到一个问题&#xff1a;如何确定测试用例的颗粒度&#xff1f;测试用例过于粗糙&#xff0c;可能无法全面覆盖系统的细节&#xff1b;而颗粒度过细&#xff0c;又会导致测试重复、冗余。掌握合适的颗粒度&#xff0c;不仅可以提高测…...

ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告

问题背景&#xff1a; ESP32 IDF VScode出现头文件“无法打开 源 文件 ”&#xff0c;并有红色下划线警告&#xff1a; 解决办法&#xff1a; 在工程里面的.vscode文件夹下&#xff0c;检查是否存在c_cpp_properties.json文件&#xff0c;如果没有可以手动创建添加。如图…...

Windows安装ES单机版设置密码

下载ES ES下载链接 我用的是7.17.26 启动前配置 解压之后打开D:\software\elasticsearch-7.17.26\bin\elasticsearch-env.bat 在elasticsearch-env.bat文件中修改jdk的路径 修改前 修改内容 if defined ES_JAVA_HOME (set JAVA"D:\software\elasticsearch-7.17.26\…...

Linux Docker

Docker 的定义 Docker 是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其依赖项打包成一个可移植的容器。容器是一种轻量级、独立的运行环境&#xff0c;与传统的虚拟机不同&#xff0c;容器共享主机操作系统的内核&#xff0c;通过隔离的文件系统、进程空间和网…...

MSE学习

MSE简介 媒体源拓展&#xff08;Media Source Extensions&#xff0c;简称 MSE&#xff09;是一个由 W3C 制定的标准&#xff0c;它允许 JavaScript 代码通过 AJAX 请求获取媒体数据&#xff0c;并将其提供给 HTML 的 <video> 或 <audio> 元素进行播放。 MSE特点…...

0-基于蚁群优化和带注意力机制的循环神经网络的新型混合算法用于解决旅行商问题(HAL science)(完)

文章目录 AbstractI INTRODUCTIONII 旅行商问题的正式描述III STATE OF THE ARTIV 使用的混合化技术原理4.1 Principle of ACO4.2具有注意机制的自动编码器模型V 蚁群优化与具有注意机制的神经网络的混合5.1 基本思想5.2 解决步骤5.2.1 模型训练5.2.2 寻找解VI EXPERIMENTS6.1 …...

MIUI显示/隐藏5G开关的方法,信号弱时开启手机Wifi通话方法

5G网速虽快&#xff0c;手机功耗也大。 1.取消MIUI强制的5G&#xff0c;手动设置4G的方法&#xff01; 【小米澎湃OS, Xiaomi HyperOS显示/隐藏5G开关的方法】 1.1.小米MIUI系统升级后&#xff0c;被强制连5G&#xff0c;手动设置开关被隐藏&#xff0c;如下图&#xff1a; 1…...

挑战20天刷完leecode100

2025.1.5 二分查找 1 搜索插入位置 就是简单的二分查找 注意开闭就行 这里有一句话就是nums是升序的 如果他不是严格递增 就是有相同的数字的情况下应该怎么写? int lower_bound(vector<int>& nums, int target) {int left 0, right (int) nums.size() - 1; …...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...