使用MyBatis快速生成代碼的幾種方法
一、使用MyBatis插件和EasyCdoe插件
1. 安裝插件
打開IDEA > settings > Plugins > Marketplace 安裝Free MyBatis Plugin 和 Easy Code 兩個(gè)插件

2. IDEA里配置MySQL
2.1 選擇DataSource >MySQL

2.2 連接到MySQL數(shù)據(jù)

3.根據(jù)數(shù)據(jù)庫表生成文件
3.1 連接MySQL成功界面如下。
選中需要生成文件的表,右擊EasyCode > Generate Code

3.2 選擇package和path,會(huì)將生成的文件放在你選擇的路徑下,需要什么類型的文件在template中選中,然后開始生成。

3.3 生成成功

二、mybatis-generator快速生成代碼
將mybatis-generator配置到項(xiàng)目里,將文件直接生成到指定的目錄。
1. 配置generatorConfig.xml
在項(xiàng)目src/main/resources 下新建generatorConfig.xml,具體配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- mysql-connector-java 版本需要與pom中引得版本一致 -->
<classPathEntry location="C:\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 不加注釋,因?yàn)槟J(rèn)注釋是英文的 -->
<commentGenerator>
<property name="addRemarkComments" value="true"/>
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- 數(shù)據(jù)庫連接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/sqmall?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetPackage 文件生成在指定包下,targetProject 路徑-->
<javaModelGenerator targetPackage="com.seven.mall.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.seven.mall.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- domainObjectName 即生成后entity的名字 -->
<table tableName = "mall_category" domainObjectName="Category" />
<table tableName = "mall_order" domainObjectName="Order" />
</context>
</generatorConfiguration>
2. pom.xml中配置mybatis-generator
<!-- dependency和plugin中jar的版本根據(jù)自己需求選擇,但同一個(gè)jar版本要保持一致 -->
<!-- 配置在dependencies中 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 配置在plugins中 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<overwrite>true</overwrite> <!-- 重復(fù)生成時(shí)覆蓋掉上次生成的文件 -->
</configuration>
</plugin>
3. 輸入命令生成文件
在IDEA Terminal 或者打開命令行切換至項(xiàng)目路徑
輸入命令 mvn mybatis-generator:generate 回車即可


4. 成功生成

三、使用工具項(xiàng)目生成代碼
介紹
其實(shí)第三種方法和第二種是一樣的都是使用mybatis-generator生成。
第二種方法需要在自己的項(xiàng)目中配置一些東西
第三種方法是將這些配置,jar之類的東西拿出來做成一個(gè)項(xiàng)目,當(dāng)作工具來用,使用時(shí)只需要修改表名和生成的package路徑即可。
1. 下載工具項(xiàng)目
https://wwa.lanzoui.com/iG2Ent9yv5i
這個(gè)項(xiàng)目和第二種方法生成出來的java文件基本是一模一樣的。
但是我在mybatis-generator-core-1.3.2.jar\org\mybatis\generator\plugins\里加了一個(gè)名稱: LombokPlugin.class。會(huì)給生成的entity加上注解,這樣就不需要寫getter、setter和toString方法了.
當(dāng)然了,如果不使用lombok,那么可以刪掉這個(gè)class或者刪除生成后的注解。
2. IDEA打開項(xiàng)目,修改配置文件
2.1 修改文件生成的位置

2.2 指定數(shù)據(jù)庫表

3. 運(yùn)行并生成文件
3.1 運(yùn)行GeneratorSqlmap的main方法

3.2 生成成功
大功告成

4. 關(guān)于mybatis-generator-core中添加lombok
- 取下面的代碼,編譯為class文件:LombokPlugin.class
- 用解壓軟件打開mybatis-generator-core-1.3.2.jar
- 把編譯好的class文件放到org\mybatis\generator\plugins\下即可
感興趣的小伙伴可以自己去試一下
代碼如下:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.mybatis.generator.plugins;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.Plugin.ModelClassType;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;
public class LombokPlugin extends PluginAdapter {
public LombokPlugin() {
}
public boolean validate(List<String> list) {
return true;
}
public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
topLevelClass.addImportedType("lombok.Data");
topLevelClass.addImportedType("lombok.Builder");
topLevelClass.addImportedType("lombok.NoArgsConstructor");
topLevelClass.addImportedType("lombok.AllArgsConstructor");
topLevelClass.addAnnotation("@Data");
topLevelClass.addJavaDocLine("/**");
topLevelClass.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));
topLevelClass.addJavaDocLine("*/");
return true;
}
public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
interfaze.addJavaDocLine("/**");
interfaze.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));
interfaze.addJavaDocLine("*/");
return true;
}
public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
return false;
}
public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
return false;
}
private String date2Str(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
return sdf.format(date);
}
}
以上就是使用MyBatis快速生成代碼的幾種方法的詳細(xì)內(nèi)容,更多關(guān)于MyBatis生成代碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java創(chuàng)建對(duì)象(顯式創(chuàng)建和隱含創(chuàng)建)
本文詳細(xì)介紹對(duì)象的創(chuàng)建,在 Java 語言中創(chuàng)建對(duì)象分顯式創(chuàng)建與隱含創(chuàng)建兩種情況,顯式創(chuàng)建和隱含創(chuàng)建,,需要的朋友可以參考下面文章的具體內(nèi)容2021-09-09
springboot多數(shù)據(jù)源配置及切換的示例代碼詳解
這篇文章主要介紹了springboot多數(shù)據(jù)源配置及切換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
從字符串中截取等長(zhǎng)字節(jié)的Java代碼
這篇文章主要介紹了從字符串中截取等長(zhǎng)字節(jié)的Java代碼,有需要的朋友可以參考一下2013-12-12
Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 實(shí)現(xiàn)分庫分表功能
這篇文章主要介紹了Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 實(shí)現(xiàn)分庫分表功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
SpringBoot整合Mybatis-plus關(guān)鍵詞模糊查詢結(jié)果為空
SpringBoot整合Mybatis-plus使用關(guān)鍵詞模糊查詢的時(shí)候,數(shù)據(jù)庫中有數(shù)據(jù),但是無法查找出來,本文就來介紹一下SpringBoot整合Mybatis-plus關(guān)鍵詞模糊查詢結(jié)果為空的解決方法2025-04-04
springboot執(zhí)行延時(shí)任務(wù)之DelayQueue的使用詳解
DelayQueue是一個(gè)無界阻塞隊(duì)列,只有在延遲期滿時(shí),才能從中提取元素。這篇文章主要介紹了springboot執(zhí)行延時(shí)任務(wù)-DelayQueue的使用,需要的朋友可以參考下2019-12-12

