<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在日常開發工作中,我們往往需要自己去構建各種資料表所對應的持久化物件(POJO)、用於運算元據庫的介面(DAO)以及跟 DAO 所繫結的對應 XML。這都是一些重複性的操作,不需要多大技術含量。MyBatis Generator工具,能夠幫助我們去自動生成這些檔案。
作為一個基於 MyBatis 的獨立工具,MyBatis Generator 能夠滿足我們以上的要求,能夠通過簡單的設定去幫我們生成資料表所對應的 POJO、DAO、XML 等檔案,減去我們手動去生成這些檔案的時間,有效提高開發效率。MyBatis Generator 執行方式多樣,主要可以通過以下幾種方式來執行:
Mybatis Generator簡稱 MBG,是一個專門為 MyBatis和 ibatis框架使用者提供的程式碼生成器。也可以快速的根據資料表生成對應的pojo類、Mapper介面、Mapper檔案,甚至生成QBC風格的查詢物件。
使用 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/srcmainresources"> <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執行過程中的警告資訊 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); //建立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 程式碼自動生成器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45