使用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ù)庫(kù)表生成文件
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ù)庫(kù)連接信息 --> <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之類的東西拿出來(lái)做成一個(gè)項(xiàng)目,當(dāng)作工具來(lái)用,使用時(shí)只需要修改表名和生成的package路徑即可。
1. 下載工具項(xiàng)目
https://wwa.lanzoui.com/iG2Ent9yv5i
這個(gè)項(xiàng)目和第二種方法生成出來(lái)的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ù)庫(kù)表
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 語(yǔ)言中創(chuàng)建對(duì)象分顯式創(chuàng)建與隱含創(chuàng)建兩種情況,顯式創(chuàng)建和隱含創(chuàng)建,,需要的朋友可以參考下面文章的具體內(nèi)容2021-09-09springboot多數(shù)據(jù)源配置及切換的示例代碼詳解
這篇文章主要介紹了springboot多數(shù)據(jù)源配置及切換,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09JavaWeb的監(jiān)聽器和過(guò)濾器你了解嗎
這篇文章主要為大家詳細(xì)介紹了JavaWeb的監(jiān)聽器和過(guò)濾器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02從字符串中截取等長(zhǎng)字節(jié)的Java代碼
這篇文章主要介紹了從字符串中截取等長(zhǎng)字節(jié)的Java代碼,有需要的朋友可以參考一下2013-12-12Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 實(shí)現(xiàn)分庫(kù)分表功能
這篇文章主要介紹了Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 實(shí)現(xiàn)分庫(kù)分表功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot整合Mybatis-plus關(guān)鍵詞模糊查詢結(jié)果為空
SpringBoot整合Mybatis-plus使用關(guān)鍵詞模糊查詢的時(shí)候,數(shù)據(jù)庫(kù)中有數(shù)據(jù),但是無(wú)法查找出來(lái),本文就來(lái)介紹一下SpringBoot整合Mybatis-plus關(guān)鍵詞模糊查詢結(jié)果為空的解決方法2025-04-04springboot執(zhí)行延時(shí)任務(wù)之DelayQueue的使用詳解
DelayQueue是一個(gè)無(wú)界阻塞隊(duì)列,只有在延遲期滿時(shí),才能從中提取元素。這篇文章主要介紹了springboot執(zhí)行延時(shí)任務(wù)-DelayQueue的使用,需要的朋友可以參考下2019-12-12