如何优雅地使用Mybatis逆向工程生成类

文/朱季谦

1.环境:SpringBoot

2.在pom.xml文件里引入相关依赖:

 1 <plugin>2    <groupId>org.mybatis.generator</groupId>3    <artifactId>mybatis-generator-maven-plugin</artifactId>4    <version>1.3.6</version>5    <configuration>6       <verbose>true</verbose>7       <overwrite>true</overwrite>8    </configuration>9    <dependencies>
10       <dependency>
11          <groupId>mysql</groupId>
12          <artifactId>mysql-connector-java</artifactId>
13          <version>5.1.36</version>
14       </dependency>
15    </dependencies>
16 
17 </plugin>
18 
19 
20 
21 <dependency>
22    <groupId>org.mybatis.generator</groupId>
23    <artifactId>mybatis-generator-core</artifactId>
24    <version>1.3.6</version>
25 </dependency>

3.创建generatorConfig.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>2 3 <!DOCTYPE generatorConfiguration4         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"5         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">6 7 <generatorConfiguration>8     <context id="testTables" targetRuntime="MyBatis3">9         <commentGenerator>
10             <!-- 是否去除自动生成的注释 true:是 : false:否 -->
11             <property name="suppressAllComments" value="true" />
12         </commentGenerator>
13         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
14         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
15                         connectionURL="jdbc:mysql://127.0.0.1:3306/example?useUnicode=true&amp;characterEncoding=utf8"
16                         userId="root"
17                         password="123456">
18         </jdbcConnection>
19 
20         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
21             和 NUMERIC 类型解析为java.math.BigDecimal -->
22         <javaTypeResolver>
23             <property name="forceBigDecimals" value="false" />
24         </javaTypeResolver>
25 
26         <!-- targetProject:生成PO类的位置 -->
27         <javaModelGenerator targetPackage="com.zhu.text.domain"
28                             targetProject=".\src\main\java">
29             <!-- enableSubPackages:是否让schema作为包的后缀 -->
30             <property name="enableSubPackages" value="false" />
31             <!-- 从数据库返回的值被清理前后的空格 -->
32             <property name="trimStrings" value="true" />
33         </javaModelGenerator>
34         <!-- targetProject:mapper映射文件生成的位置 -->
35         <sqlMapGenerator targetPackage="com.zhu.text.dao"
36                          targetProject=".\src\main\java">
37             <!-- enableSubPackages:是否让schema作为包的后缀 -->
38             <property name="enableSubPackages" value="false" />
39         </sqlMapGenerator>
40         <!-- targetPackage:mapper接口生成的位置 -->
41         <javaClientGenerator type="XMLMAPPER"
42                              targetPackage="com.zhu.text.dao" targetProject=".\src\main\java">
43             <!-- enableSubPackages:是否让schema作为包的后缀 -->
44             <property name="enableSubPackages" value="false" />
45         </javaClientGenerator>
46         <!-- 指定数据库表 -->
47         <table tableName="text_product" domainObjectName="Product"></table>
48     </context>
49 </generatorConfiguration>

4.创建main类

 1 import java.io.File;2 import java.util.ArrayList;3 import java.util.List;4 import org.mybatis.generator.api.MyBatisGenerator;5 import org.mybatis.generator.config.Configuration;6 import org.mybatis.generator.config.xml.ConfigurationParser;7 import org.mybatis.generator.internal.DefaultShellCallback;8 9 public class MBGenerator {
10     public static void main(String[] args) throws Exception{
11 
12         List<String> warnings = new ArrayList<String>();
13         boolean overwrite = true;
14         File configFile = new File("例:generatorConfig.xml的存放路径");
15         ConfigurationParser cp = new ConfigurationParser(warnings);
16         Configuration config = cp.parseConfiguration(configFile);
17         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
18         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
19         myBatisGenerator.generate(null);
20     }
21 }

5.执行maven方法里的mybatis-generator:generate

clipboard

完成以上步骤,就可以自定生成需要的xml文件与类以及对应的java bean类。

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

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

相关文章

《三十》模块化打包构建工具 Rollup

19的2小时06分钟 Rollup 是一个 JavaScript 的模块化打包工具&#xff0c;可以帮助编译微小的代码到庞大的复杂的代码中&#xff08;例如一个库或者一个应用程序&#xff09;。 Rollup 和 Webpack 的区别&#xff1a; Rollup 也是一个模块化的打包工具&#xff0c;但是它主要…

排序:非递归的快排

目录 非递归的快排&#xff1a; 代码分析&#xff1a; 代码演示&#xff1a; 非递归的快排&#xff1a; 众所周知&#xff0c;递归变成非递归&#xff0c;而如果还想具有递归的功能&#xff0c;那么递归的那部分则需要变成循环来实现。 而再我们的排序中&#xff0c;我们可…

Azure Machine Learning - 使用 Azure OpenAI 服务生成图像

在浏览器/Python中使用 Azure OpenAI 生成图像&#xff0c;图像生成 API 根据文本提示创建图像。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#x…

【动态规划】【广度优先】LeetCode2258:逃离火灾

作者推荐 本文涉及的基础知识点 二分查找算法合集 动态规划 二分查找 题目 给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid &#xff0c;它表示一个网格图。每个格子为下面 3 个值之一&#xff1a; 0 表示草地。 1 表示着火的格子。 2 表示一座墙&#xff0c;你跟…

pytorch:YOLOV1的pytorch实现

pytorch&#xff1a;YOLOV1的pytorch实现 注&#xff1a;本篇仅为学习记录、学习笔记&#xff0c;请谨慎参考&#xff0c;如果有错误请评论指出。 参考&#xff1a; 动手学习深度学习pytorch版——从零开始实现YOLOv1 目标检测模型YOLO-V1损失函数详解 3.1 YOLO系列理论合集(Y…

Redis对象类型检测与命令多态

一. 命令类型 Redis中操作键的命令可以分为两类。 一种命令可以对任意类型的键执行&#xff0c;比如说DEL&#xff0c;EXPIRE&#xff0c;RENAME&#xff0c;TYPE&#xff0c;OBJECT命令等。 举个例子&#xff1a; #字符串键 127.0.0.1:6379> set msg "hello world&…

第76讲:MySQL数据库中常用的命令行工具的基本使用

文章目录 1.mysql客户端命令工具2.mysqladmin管理数据库的客户端工具3.mysqlbinlog查看数据库中的二进制日志4.mysqlshow统计数据库中的信息5.mysqldump数据库备份工具6.mysqllimport还原备份的数据7.source命令还原SQL类型的备份文件 MySQL数据库提供了很多的命令行工具&#…

python 画条形图(柱状图)

目录 前言 基础介绍 月度开支的条形图 前言 条形图&#xff08;bar chart&#xff09;&#xff0c;也称为柱状图&#xff0c;是一种以长方形的长度为变量的统计图表&#xff0c;长方形的长度与它所对应的变量数值呈一定比例。 当使用 Python 画条形图时&#xff0c;通常会使…

vscode 编译运行c++ 记录

一、打开文件夹&#xff0c;新建或打开一个cpp文件 二、ctrl shift p 进入 c/c配置 进行 IntelliSense 配置。主要是选择编译器、 c标准&#xff0c; 设置头文件路径等&#xff0c;配置好后会生成 c_cpp_properties.json&#xff1b; 二、编译运行&#xff1a; 1、选中ma…

zabbix 通过 odbc 监控 mssql

1、环境 操作系统&#xff1a;龙蜥os 8.0 zabbix&#xff1a;6.0 mssql&#xff1a;2012 2、安装odbc 注意&#xff1a;需要在zabbix server 或者 zabbix proxy 安装 odbc驱动程序 dnf -y install unixODBC unixODBC-devel3、安装mssql驱动程序 注意&#xff1a;我最开始尝试…

Tomcat管理功能使用

前言 Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下是处于禁用状态的。如果需要开启这个功能&#xff0c;需要配置管理用户&#xff0c;即配置tomcat-users.xml文件。 &#xff01;&#xff01;&#xff01;注意&#xff1a;测试功…

react 学习笔记 李立超老师 | (学习中~)

文章目录 react学习笔记01入门概述React 基础案例HelloWorld三个API介绍 JSXJSX 解构数组 创建react项目(手动)创建React项目(自动) | create-react-app事件处理React中的CSS样式内联样式 | 内联样式中使用state (不建议使用)外部样式表 | CSS Module React组件函数式组件和类组…

不同品牌的手机如何投屏到苹果MacBook?例如小米、华为怎样投屏比较好?

习惯使用apple全家桶的人当然知道苹果手机或iPad可以直接用airplay投屏到MacBook。 但工作和生活的多个场合里&#xff0c;并不是所有人都喜欢用同一品牌的设备&#xff0c;如果同事或同学其他品牌的手机需要投屏到MacBook&#xff0c;有什么方法可以快捷实现&#xff1f; 首先…

【GDB】

GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的…

(五)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

iOS(swiftui)——系统悬浮窗( 可在其他应用上显示,可实时更新内容)

因为ios系统对权限的限制是比较严格的,ios系统本身是不支持全局悬浮窗(可在其他app上显示)。在iphone14及之后的iPhone机型中提供了一个叫 灵动岛的功能,可以在手机上方可以添加一个悬浮窗显示内容并实时更新,但这个功能有很多局限性 如:需要iPhone14及之后的机型且系统…

Java面试遇到的一些常见题

目录 1. Java语言有几种基本类型&#xff0c;分别是什么&#xff1f; 整数类型&#xff08;Integer Types&#xff09;&#xff1a; 浮点类型&#xff08;Floating-Point Types&#xff09;&#xff1a; 字符类型&#xff08;Character Type&#xff09;&#xff1a; 布尔类…

(六)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

【完整项目】双模式答题卡识别软件中YOLO模式的训练部分详解,包括训练填涂区域和手写准考证号,手把手详细教学,可延申拓展训练其他图像数据

目录 前言1. 数据准备2. 数据标注3. 先跑起来Windows下用本地的CPU或GPU训练本地Windows系统连接服务器训练前言 前文:【完整项目】基于Python+Tkinter+OpenCV+Yolo+手写OCR的双模式答题卡识别软件的设计与实现 如果你需要训练自己的答题卡模型,那么请先看上面的文章链接。…

Flutter自定义下拉选择框dropDownMenu

利用PopupMenuButton和PopupMenuItem写了个下拉选择框&#xff0c;之所以不采用系统的&#xff0c;是因为自定义的更能适配项目需求&#xff0c;话不多说&#xff0c;直接看效果 下面直接贴出代码、代码中注释写的都很清楚&#xff0c;使用起来应该很方便&#xff0c;如果有任何…