1. 程式人生 > >mybatis-generator 詳細配置,爬坑記錄

mybatis-generator 詳細配置,爬坑記錄

mybatis-generator 詳細配置,爬坑記錄

一、簡介:

mybatis-geneator 是一款 mybatis 自動程式碼生成工具,可以通過配置,快速生成 mapper 和 xml 檔案。

二、配置方法:

(1)在專案的 pom 檔案中新增外掛配置

在上一篇 Spring Boot + MyBatis 電商專案 - 03- MySQL 連線、DRUID、MyBatis-generator
的最後已經介紹了很詳細的 pom.xml 配置:

<plugin>
  <groupId>org.mybatis.generator</
groupId
>
<artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <executions> <execution> <id>Generate MyBatis Files</id> <phase>package</phase> <goals> <goal>generate</
goal
>
</goals> <configuration> <!--允許移動生成的檔案--> <verbose>true</verbose> <!--實際專案要注意是否可以設定成 true!--> <!--允許自動覆蓋檔案--> <overwrite>true</overwrite> <configurationFile> src/main/resources/mybatis-generator.xml </
configurationFile
>
</configuration> </execution> </executions> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> </dependencies> </plugin>

(2)根據自己配置的檔案路徑及名稱,建立相應 mybatis-generator.xml 檔案,下面進行配置:

目錄結構:

三、編輯 mybatis-generator.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>
    <!--匯入屬性配置-->
    <properties resource="datasource.properties"></properties>

    <!-- 指定資料庫驅動的jdbc驅動jar包的位置 -->
    <classPathEntry location="${db.driverLocation}" />

    <!-- context 是逆向工程的主要配置資訊 -->
    <!-- id:起個名字 -->
    <!-- targetRuntime:設定生成的檔案適用於那個 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">

        <!--optional,旨在建立class時,對註釋進行控制-->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--jdbc的資料庫連線-->
        <jdbcConnection driverClass="${db.driverClassName}"
                        connectionURL="${db.url}"
                        userId="${db.username}"
                        password="${db.password}">
        </jdbcConnection>

        <!--非必須,型別處理器,在資料庫型別和java型別之間的轉換控制-->
        <javaTypeResolver>
            <!-- 預設情況下資料庫中的 decimal,bigInt 在 Java 對應是 sql 下的 BigDecimal 類 -->
            <!-- 不是 double 和 long 型別 -->
            <!-- 使用常用的基本型別代替 sql 包下的引用型別 -->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetPackage:生成的實體類所在的包 -->
        <!-- targetProject:生成的實體類所在的硬碟位置 -->
        <javaModelGenerator targetPackage="com.mall.pojo"
                            targetProject=".\src\main\java">
            <!-- 是否允許子包 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否對modal新增建構函式 -->
            <property name="constructorBased" value="true" />
            <!-- 是否清理從資料庫中查詢出的字串左右兩邊的空白字元 -->
            <property name="trimStrings" value="true" />
            <!-- 建立modal物件是否不可改變 即生成的modal物件不會有setter方法,只有構造方法 -->
            <property name="immutable" value="false" />
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:生成的 mapper 檔案的包和位置 -->
        <sqlMapGenerator targetPackage="mappers"
                         targetProject=".\src\main\resource">
            <!-- 針對資料庫的一個配置,是否把 schema 作為字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage 和 targetProject:生成的 interface 檔案的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mall.dao" targetProject=".\src\main\java">
            <!-- 針對 oracle 資料庫的一個配置,是否把 schema 作為字包名 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <table tableName="user" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

四、配置 application.properties 檔案:

新增下面內容:
(當然這些都不自己輸入,後面的內容需要自己進行配置,所以路徑會經常出問題,所以我們不自己輸出路徑,下面會介紹如何找)

db.driverLocation=C:/Users/Administrator/m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar
db.driverClassName=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
db.username=root
db.password=123456

找上述需要的路徑:

  • (1)先找出這三級目錄:

  • (2)再找 jdbc/Driver,右鍵拷貝路徑:

  • (3)但是拷貝的路徑斜槓是反著的:

C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\8.0.13\mysql-connector-java-8.0.13.jar!\com\mysql\cj\jdbc\Driver.class

需要我們手動改成:

C:/Users/Administrator/m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar
  • (4)再拷貝 引用:
com.mysql.cj.jdbc.Driver

後續補一些,連線資料數庫問題解決方案

更多文章連結