MyBatis?Generator?ORM層面的代碼自動生成器(推薦)
在日常開發(fā)工作中,我們往往需要自己去構建各種數據表所對應的持久化對象(POJO)、用于操作數據庫的接口(DAO)以及跟 DAO 所綁定的對應 XML。這都是一些重復性的操作,不需要多大技術含量。MyBatis Generator工具,能夠幫助我們去自動生成這些文件。
MyBatis Generator 簡介
作為一個基于 MyBatis 的獨立工具,MyBatis Generator 能夠滿足我們以上的要求,能夠通過簡單的配置去幫我們生成數據表所對應的 POJO、DAO、XML 等文件,減去我們手動去生成這些文件的時間,有效提高開發(fā)效率。MyBatis Generator 運行方式多樣,主要可以通過以下幾種方式來運行:
- 命令行
- Ant
- Maven
- Java
- IDE
Mybatis Generator簡稱 MBG,是一個專門為 MyBatis和 ibatis框架使用者提供的代碼生成器。也可以快速的根據數據表生成對應的pojo類、Mapper接口、Mapper文件,甚至生成QBC風格的查詢對象。
MyBatis Generator的使用
使用 MyBatis Generator,需要在項目中配置了數據庫和 MyBatis 的相關依賴。
引入插件
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- mybatis-generator --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency>
配置生成器文件
<?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> <!--targetRuntime="MyBatis3"--> <context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple"> <!-- 生成的Java文件的編碼 --> <property name="javaFileEncoding" value="UTF-8" /> <!-- beginningDelimiter和endingDelimiter:指明數據庫的用于標記數據庫對象名的符號,比如ORACLE就是雙引號,MYSQL默認是`反引號; --> <property name="beginningDelimiter" value="`" /> <property name="endingDelimiter" value="`" /> <!-- 注釋生成器 --> <commentGenerator> <property name="suppressDate" value="true" /> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 必須要有的,使用這個配置鏈接數據庫 @TODO:是否可以擴展 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="1111"> </jdbcConnection> <!-- 生成domain對象 --> <javaModelGenerator targetPackage="com.sunny.domain" targetProject="mybatis-11_MBG/src/main/java"> <property name="enableSubPackages" value="true" /> </javaModelGenerator> <!-- 生成Mapper文件 --> <sqlMapGenerator targetPackage="com.sunny.mapper" targetProject="mybatis-11_MBG/\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成Mapper接口 --> <javaClientGenerator targetPackage="com.sunny.mapper" type="XMLMAPPER" targetProject="mybatis-11_MBG/src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- Table To POJO --> <!--domainObjectName="User"--> <table tableName="user2" delimitIdentifiers="true"> <property name="useActualColumnNames" value="true" /> <generatedKey column="id" sqlStatement="JDBC" /> </table> </context> </generatorConfiguration>
配置文件極為重要,對應數據庫表生成POJO對象的映射關系由配置文件完成。
運行配置文件
Java代碼運行:
public class Generator { public static void main(String[] args) throws Exception { //MBG執(zhí)行過程中的警告信息 List<String> warnings = new ArrayList<String>(); //生成代碼重復時,是否覆蓋源代碼 boolean override = false; InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(in); DefaultShellCallback callback = new DefaultShellCallback(override); //創(chuàng)建MBG MyBatisGenerator mbg = new MyBatisGenerator(config, callback, warnings); mbg.generate(null); //輸出警告信息 for (String warn : warnings) { System.out.println(warn); } } }
通過Maven插件運行:
如果使用Maven插件,那么不需要引入mybatis-generator-core
依賴,只需要引入一個Maven的插件mybatis-generator-maven-plugin
<plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!-- 輸出詳細信息 --> <verbose>true</verbose> <!-- 覆蓋生成文件 --> <overwrite>true</overwrite> <!-- 定義配置文件 --> <configurationFile>${basedir}/src/main/resources/generator-configuration.xml</configurationFile> </configuration> </plugin> </plugins>
通過mvn mybatis-generator:generate
運行,或者IDE一鍵運行。
參考文獻:
Mybatis代碼生成器Mybatis-Generator使用詳解感謝作者!
到此這篇關于MyBatis Generator ORM層面的代碼自動生成器的文章就介紹到這了,更多相關MyBatis Generator 代碼自動生成器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot2.x 接入阿里云市場短信發(fā)送的實現(xiàn)
本文主要介紹了springboot2.x 接入阿里云市場短信發(fā)送的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Java Spring 中 @PostConstruct 注解使用原理及常見場景
在 Java Spring 中,@PostConstruct 注解是一個非常實用的功能,它允許開發(fā)者在 Spring 容器完全初始化 Bean 后執(zhí)行某些操作,本文將詳細介紹 @PostConstruct 注解的使用,包括其原理、常見場景和代碼示例,2025-04-04Jmeter關聯(lián)實現(xiàn)及參數化使用解析
這篇文章主要介紹了Jmeter關聯(lián)實現(xiàn)及參數化使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08Spring?MVC異步上傳、跨服務器上傳和文件下載功能實現(xiàn)
這篇文章主要介紹了Spring?MVC異步上傳、跨服務器上傳和文件下載功能實現(xiàn),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07