如何優雅地使用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.pswp.cn/news/211111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211111.shtml
英文地址,請注明出處:http://en.pswp.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;我們可…

深入理解asyncio:異步編程的基礎用法

引言&#xff1a; 隨著計算機硬件的不斷發展&#xff0c;對于異步編程的需求也越來越強烈。Python中的asyncio模塊為開發者提供了一種強大而靈活的異步編程方式。本文將介紹asyncio的基礎用法&#xff0c;包括async/await/run語句的使用、多個協程的并發執行、以及在協程中進行…

Let和Var的區別

一&#xff1a;區別 Let不能重復聲明&#xff0c;且必須先聲明再調用&#xff1b; 但也可以只聲明不賦值&#xff0c;默認賦值undefined&#xff1b; 二&#xff1a;實例 let x 10; let x 20; // 這里將會報錯&#xff0c;因為 x 已經被聲明過了 console.log(y); let b …

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;通常會使…

python代碼:如何控制一個exe程序只能執行一次

import ctypes import sys def is_program_running(): # 創建互斥體 mutex_name "Global\\MonitorClientMutex" h_mutex ctypes.windll.kernel32.CreateMutexW(None, False, mutex_name) # 檢查互斥體是否已經存在 if ctypes.windll.kernel32.Get…

Centos7.9安裝谷歌【解決依賴問題】

安裝過程 mkdir /home/app cd /home/app wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum install -y redhat-lsb-core-4.0-7.el6.centos.x86_64 yum install -y libX11-devel --nogpg yum install -y cmake gcc gcc-c gtk-devel gim…

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組件函數式組件和類組…

【數據結構和算法】反轉字符串中的單詞

其他系列文章導航 Java基礎合集數據結構與算法合集 設計模式合集 多線程合集 分布式合集 ES合集 文章目錄 其他系列文章導航 文章目錄 前言 一、題目描述 二、題解 2.1 方法一&#xff1a;雙指針 2.2 方法二&#xff1a;分割 倒序 三、代碼 3.1 方法一&#xff1a;雙…

不同品牌的手機如何投屏到蘋果MacBook?例如小米、華為怎樣投屏比較好?

習慣使用apple全家桶的人當然知道蘋果手機或iPad可以直接用airplay投屏到MacBook。 但工作和生活的多個場合里&#xff0c;并不是所有人都喜歡用同一品牌的設備&#xff0c;如果同事或同學其他品牌的手機需要投屏到MacBook&#xff0c;有什么方法可以快捷實現&#xff1f; 首先…

1 億個數據取出最大前 100 個有什么方法?

1 億個數據取出最大前 100 個有什么方法&#xff1f; 大家好&#xff0c;這是一道經常在面試中被遇到的一個問題&#xff0c;我之前面試也是被問到過得&#xff0c;現在一起學習下&#xff0c;下次再被問到就可以輕松地用對。 在計算機科學和數據處理領域&#xff0c;我們經常…

【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文件的…