MyBatis Generator 插件 详解自动生成代码

MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量,甚至不用程序员手动写sql。
它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍然需要为连接查询或存储过程手动编写SQL和对象代码。

MyBatis Generator将生成:

与表结构匹配的Java POJO。这可能包括:一个匹配表的主键的类(如果有主键)一个匹配表的非主键字段的类(BLOB字段除外)包含表的BLOB字段的类(如果表具有BLOB字段)用于启用动态选择,更新和删除的类这些类之间存在适当的继承关系。请注意,生成器可以配置为生成不同类型的POJO层次结构 - 例如,如果您愿意,可以选择为每个表生成单个域对象。
MyBatis / iBATIS兼容的SQL Map XML文件。MBG在配置中的每个表上为简单的CRUD函数生成SQL。生成的SQL语句包括:插入按主键更新通过示例更新(使用动态where子句)按主键删除按示例删除(使用动态where子句)按主键选择按示例选择(使用动态where子句)以身作则根据表的结构,这些语句有不同的变体(例如,如果表没有主键,则MBG不会通过主键功能生成更新)。
适当使用上述对象的Java客户端类。Java客户端类的生成是可选的。MBG将为MyBatis 3.x生成以下类型的Java客户端:适用于MyBatis 3.x映射器基础结构的映射器接口
MBG将为iBATIS 2.x生成以下类型的Java客户端:符合Spring框架的DAO仅使用iBATIS SQL映射API的DAO。这些DAO可以生成两种:通过构造函数或setter注入提供SqlMapClient。符合iBATIS DAO框架的DAO(iBATIS的可选部分,现在不推荐使用此框架,我们建议您使用Spring框架)

与表结构匹配的Java POJO。这可能包括:
    一个匹配表的主键的类(如果有主键)
    一个匹配表的非主键字段的类(BLOB字段除外)
    包含表的BLOB字段的类(如果表具有BLOB字段)
    用于启用动态选择,更新和删除的类

这些类之间存在适当的继承关系。请注意,生成器可以配置为生成不同类型的POJO层次结构 - 例如,如果您愿意,可以选择为每个表生成单个域对象。
MyBatis / iBATIS兼容的SQL Map XML文件。MBG在配置中的每个表上为简单的CRUD函数生成SQL。生成的SQL语句包括:
    插入
    按主键更新
    通过示例更新(使用动态where子句)
    按主键删除
    按示例删除(使用动态where子句)
    按主键选择
    按示例选择(使用动态where子句)
    以身作则

根据表的结构,这些语句有不同的变体(例如,如果表没有主键,则MBG不会通过主键功能生成更新)。
适当使用上述对象的Java客户端类。Java客户端类的生成是可选的。MBG将为MyBatis 3.x生成以下类型的Java客户端:
    适用于MyBatis 3.x映射器基础结构的映射器接口
MBG将为iBATIS 2.x生成以下类型的Java客户端:
    符合Spring框架的DAO
    仅使用iBATIS SQL映射API的DAO。这些DAO可以生成两种:通过构造函数或setter注入提供SqlMapClient。
    符合iBATIS DAO框架的DAO(iBATIS的可选部分,现在不推荐使用此框架,我们建议您使用Spring框架)


MyBatis生成器设计为在迭代开发环境中运行良好,并且可以作为Ant任务或Maven插件包含在连续构建环境中。迭代运行MBG时需要注意的重要事项包括:

如果存在与新生成的XML文件同名的现有文件,MBG将自动合并XML文件。MBG不会覆盖您对其生成的XML文件所做的任何自定义更改。您可以反复运行它,而不必担心会丢失对XML的自定义更改。MBG将替换先前运行中生成的任何XML元素。
MBG 不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件。如果对生成的Java文件进行更改并以迭代方式运行MBG,则必须手动合并更改。当作为Eclipse 插件运行时 ,MBG可以自动合并Java文件。

第一步:pom文件引入依赖

 <!--mybatis 逆向生成 自动生成的配置 begin--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><configuration><verbose>true</verbose><overwrite>true</overwrite><configurationFile>src/main/resources/mybatis-generator.xml</configurationFile></configuration><!--                <dependencies>--><!--                    <dependency>--><!--                        <groupId> mysql</groupId>--><!--                        <artifactId> mysql-connector-java</artifactId>--><!--                        <version>5.1.46</version>--><!--                    </dependency>--><!--                    <dependency>--><!--                        <groupId>com.zhishi.mybatis</groupId>--><!--                        <artifactId>mybatis-generator-core</artifactId>--><!--                        <version>1.0.1</version>--><!--                        <scope>system</scope>--><!--                        <systemPath>C:/Users/86188/Desktop/zhishi/mybatis/mybatis-generator-core/1.0.1/mybatis-generator-core-1.0.1.jar</systemPath>--><!--                    </dependency>--><!--                </dependencies>--></plugin>

第二步:resources目录下创建mybatis-generator.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><classPathEntry location="C:\Users\admin\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/><context id="DB2Tables" targetRuntime="MyBatis3"><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://k8s-bj-test-nodeports.ruijie.com.cn:32545/contract?useSSL=false" userId="manager" password="2d4205fcc98f4de48404831a7edc60ee"/><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><javaModelGenerator targetPackage="com.ruijie.returns.domain" targetProject="src/main/java"><property name="enableSubPackages" value="true"/><property name="trimStrings" value="true"/></javaModelGenerator><sqlMapGenerator targetPackage="com.ruijie.returns.mapper" targetProject="src/main/java"><property name="enableSubPackages" value="true"/></sqlMapGenerator><javaClientGenerator type="XMLMAPPER" targetPackage="com.ruijie.returns.mapper" targetProject="src/main/java"><property name="enableSubPackages" value="true"/></javaClientGenerator><table tableName="contract_info" domainObjectName="ContractInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"><property name="useActualColumnNames" value="false"/></table></context>
</generatorConfiguration>

第三步:maven执行,双击

第四步:就生成了指定文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOV5 C++部署的人员检测项目【学习笔记(十一)】

本文为修改后的转载&#xff0c;没有转载链接&#xff0c;所以文章类型暂为原创 文章目录 一、安装Pytorch 及 YOLO v51.1 安装GPU版 pytorch1.2 安装YOLO v5所需依赖 二、YOLO v5训练自定义数据2.1 标注数据2.1.1 安装labelImg2.1.2 标注 2.2 准备数据集2.2.1 组织目录结构2.…

深度学习之三(卷积神经网络--Convolutional Neural Networks,CNNs)

概念 卷积神经网络(Convolutional Neural Networks,CNNs)是一种特殊的神经网络结构,专门用于处理具有网格状结构(如图像、音频)的数据。CNN 在计算机视觉领域取得了巨大成功,广泛应用于图像识别、物体检测、图像生成等任务。以下是 CNN 的主要理论概念: 在数学中,卷…

TeXLive 2023安装教程

TeXLive 2023安装教程 本文介绍最新TeX发行版——TeXLive 2023的安装步骤。如果你想用LaTeX进行写作&#xff0c;那么需要搭建LaTeX环境&#xff1a;可以选择下面两种方案之一进行安装&#xff1a;(1)TeXLive 2023TeXStudio或者(2)TeXLive 2023WinEdt 11。其中TeXLive 2023是由…

[Mac软件]Downie 4.6.34视频下载工具

以下是关于Downie软件的介绍&#xff1a; Downie是一款非常实用的视频下载软件&#xff0c;专门为Mac用户设计。这款软件的使用方法非常简单&#xff0c;只需要将想要下载的视频链接复制到Downie的界面&#xff0c;它就能够自动下载。 Downie最大的特点就是支持的网站非常多&a…

五大匹配算法

五大匹配算法 五大匹配算法 BF 匹配、RK 匹配、KMP 匹配、BM 匹配、Sunday 匹配。 1、BF 匹配 // BF 匹配&#xff08;暴力匹配&#xff09; public static int bfMatch(String text, String pattern) {char[] t text.toCharArray();char[] p pattern.toCharArray();int i …

vs code git问题:文件明明已加入忽略文件中,还是出现

vs code git问题&#xff1a;文件明明已加入忽略文件中&#xff0c;还是出现 原因&#xff1a; 因为之前这些文件都已经提交过&#xff0c;线上GIT已经存在&#xff0c;已存在就不能忽略&#xff0c; 解决办法&#xff1a; 先要删除这些文件提交上去&#xff0c;然后把这些文…

使用USB转JTAG芯片CH347在Vivado下调试

简介 高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。 通过XVC协议&#xff0c;将CH347应用于Vivado下&#xff0c;简单尝试可以成功&#xff0c;源码如下&#xff0c;希望可以一起共建&a…

软件系统运维方案

1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 点击获取所有软件开发资料&#xff1a;点我获取

一文了解Spring依赖注入时循环依赖问题

目录 什么是循环依赖 凡是Java的循环依赖都会有问题&#xff1f; 为什么Spring循环依赖会有问题&#xff1f; Spring解决循环依赖问题的思路&#xff1f; 设置二级缓存对象池 方案一直接将实例化对象放入早期对象池 方案一缺点 方案二-将实例化对象处理AOP后放入早期对象…

入行IC | 从小白助理级,到总监专家级,到底要经历怎样的成长阶段呢?

《中国集成电路产业人才发展报告》是业内和IC设计、IC人才都息息相关的一份报告。 &#xff08;文末可领全部报告资料&#xff09; * 从报告数据来看&#xff0c;无论在半导体产业的哪个环节&#xff0c;个人发展路径和年薪待遇都是逐级攀升的趋势。 那么从小白助理级&a…

口袋参谋:找关键词的三种方法!

​如何找热搜关键词&#xff1f;99%的商家都不知道。那么今天可以根据我说的三种方法去做。 第一种方法&#xff1a;利用竞争对手 通过分析竞争对手&#xff0c;正在使用和采取何种优化方法&#xff0c;来帮助你理解市场上正在流行什么样的关键字&#xff0c;这些热词可以直接从…

Java自动化驱动浏览器搜索稻香

下载最新的Chrome浏览器 查看chrome版本&#xff0c;在浏览器地址栏输入&#xff1a;chrome://version/ 下载对应的浏览器驱动&#xff0c;将其放到一个目录中&#xff0c;我放到了D:/chromedriver-win64 导入对应的依赖【注意&#xff1a;不要导入最新的版本&#xff0c;最…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大重点分析

数字化时代银行网点厅堂营销存在以下5大重点&#xff1a; 1、厅堂宣传。应以主推产品作为厅堂宣传的宣传重点&#xff0c;结合视频宣传、平面物料、互动机具、陈列物料等多维度&#xff0c;开展有序重复展示&#xff0c;进而加大吸引客户关注度。 2、产品推荐。在识别出中高端…

纽扣电池/含纽扣电池产品上架亚马逊各国法规标准要求16 CFR 第 1700.15/20 ANSI C18.3M(瑞西法案认证)

亚马逊纽扣电池认证标准有哪些&#xff1f; 一、美国站&#xff08;亚马逊纽扣电池/含纽扣电池商品&#xff09;安全测试标准要求&#xff1a; 16 CFR 第 1700.15 、16 CFR 第 1700.20 ANSI C18.3M、警示标签声明要求&#xff08;第 117-171 号公众法&#xff09; 二、澳大…

Linux应用开发基础知识——网络通信编程(九)

前言&#xff1a; 通过学习为后续Linux网络编程奠定基础。首先介绍网络编程的概念&#xff0c;即网络协议分层&#xff0c;旨在帮助读者对网络建立初步的、全面立体的认识&#xff0c;其次介绍包括协议、端口、地址等&#xff1b;最后介绍应用非常广泛的传输控制协议&#xff0…

CentOS8部署Skywalking(非容器方式)

一、官网下载安装包 二、安装 #tar -zxf apache-skywalking-apm-9.6.0.tar.gz #mv apache-skywalking-apm-9.6.0 skywalking #cd /opt/skywalking 修改配置文件 #vi /opt/skywalking/config/application.yml #vi vi /opt/skywalking/webapp/application.yml 三、运行 ./bin…

NLP | SimKGC论文详解及项目实现

本文主要讲解了论文SimKGC&#xff1a;基于预训练语言模型的简单对比知识图谱补全的论文总结以及项目实现。 论文题目&#xff1a;2022_SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models 论文地址&#xff1a;2022.acl-long.295.pdf (…

竞赛 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]

文章目录 0 简介1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习卷积神经网络的花卉识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

澳洲的猫罐头怎么样呢?几款我自己亲自喂养过的优质猫罐头推荐

一款优质的猫罐头&#xff0c;必须满足三个要点&#xff1a;完整又均衡的营养配方、新鲜又优质的原料、以及科学可靠的生产工艺。 猫罐头的三个要素&#xff0c;一个都不能少。配方不均衡&#xff0c;营养就不足&#xff1b;原料不新鲜&#xff0c;生产出来的猫罐头就不优质&a…

参与活动如何进行地区的限制

对活动地区限制分为两步&#xff1a;一是管理端配置&#xff0c;而是移动端限制 移动端限制 使用高德获取经纬度&#xff08;需要引入高德库&#xff1a;https://webapi.amap.com/maps&#xff09;&#xff0c;如果是app也可以调用jsapi获取经纬度 export const checkAppPermis…