天天看點

spring boot +mybatis + generator 代碼自動生成

因為項目時間緊迫,需要提高開發效率,故學習使用mybatis的generator插件自動生成代碼,在參考其他部落格代碼的過程中,按照其中一部分部落格寫的方法并不能把項目運作起來(本人在運作demo過程中未解決自己實際遇到的問題),特此寫下此篇部落格,記錄下實際可以運作的方案,以便以後再次使用。

參考原文:https://blog.csdn.net/u010837612/article/details/80351591

一、簡介

1.1 MyBatis Generator介紹

mybatis要寫許多xml檔案,sql語句,dao接口,但大部分都是通用的增删改查操作。繁瑣的編寫讓人頭痛,單從這一點來說jpa更友善。

MyBatis Generator 是MyBatis 官方出品的一款,用來自動生成MyBatis的 mapper、dao、entity 的架構,讓我們省去規律性最強的一部分最基礎的代碼編寫。

1.2 MyBatis Generator使用

MyBatis Generator的使用方式有4種:

指令行生成

Maven方式生成

使用Ant任務生成

使用Java代碼生成

其中推薦使用Maven方式進行代碼生成,因為內建和使用比較簡單。

1.3 開發環境(參考個人實際情況)

MySQL:8.0.12

MyBatis Generator:1.3.7

Maven:4.0

IDEA:2018.2

二、使用Mysql資料庫

建立資料庫,先建立一個資料表來測試:

CREATE TABLE `t_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `telephone` varchar(255) DEFAULT '' COMMENT '手機号',
  `user_address` varchar(255) DEFAULT '' COMMENT '位址',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

           

三、代碼自動生成配置

最推薦使用的是Maven方式,下面是Maven方式的MyBatis代碼生成,分為四步:

Step 1:添加和mysql、mybatis相關的依賴(參考,以下隻貼出一部分)

<!--mysql jdbc驅動-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.7</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
           

Step 2:添加插件(很重要)

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.6</version>
    <configuration>
        <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
        <overwrite>true</overwrite>
        <verbose>true</verbose>
    </configuration>
</plugin>
           

Step 3:

可根據自己的實際情況調整目錄結構,同時修改xml配置檔案的檔案路徑等關鍵資訊,也可以将xx.xml檔案中的部分通用配置資訊放在xx.properties檔案中。

在resources/generator目錄下建立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>
    <!-- 資料庫驅動:選擇你的本地硬碟上面的資料庫驅動包-->
    <classPathEntry  location="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的注釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--資料庫連結URL,使用者名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/demo" userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射檔案的包名和位置-->
        <sqlMapGenerator targetPackage="mybatis" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是資料庫中的表名或視圖名 domainObjectName是實體類名,還可以設定其他資訊-->
        <table tableName="t_info" 
	        domainObjectName="Info"  
	        enableCountByExample="false" 
	        enableUpdateByExample="false"
	        enableDeleteByExample="false"
	        enableSelectByExample="false"
	        selectByExampleQueryId="false">
         </table>
    </context>
</generatorConfiguration>
           

Step 3:點選Maven生成代碼

根據你本地的實際情況修改上面配置檔案,更多配置項可以參考官方文檔:http://www.mybatis.org/generator/configreference/xmlconfig.html

點選run Edit Configurations:

spring boot +mybatis + generator 代碼自動生成

添加maven,修改name 和 command line:

spring boot +mybatis + generator 代碼自動生成
mybatis-generator:generate -e
           

點選确定,然後就可以點選綠色三角形運作了:

spring boot +mybatis + generator 代碼自動生成

運作成功,生成三個檔案:

spring boot +mybatis + generator 代碼自動生成

生成的dao接口檔案和mapper檔案都是以mapper結尾,如果你想修改字尾,可以修改配置檔案中的table标簽,使用mapperName指定名稱

<table tableName="t_info" domainObjectName="Info"  mapperName="InfoDao"></table>
1
           

但是兩個檔案都會改成Dao字尾,本人比較習慣接口命名為Dao,xml檔案命名為Mapper,要解決這個問題,隻能修改源碼,或者手動修改,這裡不具體闡述了。

注意:如果你修改了dao接口和實體類的内容,再次運作generator将會覆寫舊檔案,這點要謹慎。從運作時控制台輸出的資訊也能看到:

spring boot +mybatis + generator 代碼自動生成

繼續閱讀