1. 程式人生 > 實用技巧 >使用generator進行程式碼自動生成

使用generator進行程式碼自動生成

在使用generator 進行逆向工程時,一下為步驟

  1. 新增mybatis generator的maven外掛依賴
  2. 新增mybatis generator的配置檔案:generatorConfig.xml
  3. 執行maven build: mybatis-generator:generate,生成程式碼

1在pom.xml中的build > plugins下新增依賴

<!-- generator -->
<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId
>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <dependencies> <dependency> <
groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.20</version> <scope>runtime</scope> </dependency> </dependencies> </plugin>

2新增配置檔案

在該路勁下

新增

<?xml version="1.0" encoding="UTF-8"
?> <!DOCTYPEgeneratorConfiguration PUBLIC"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!--匯入配置檔案--> <properties resource="application.properties"></properties> <!-- 一個數據庫一個context --> <context id="default"> <!-- 註釋生成設定 --> <commentGenerator> <!-- 是否生成註釋代時間戳--> <property name="suppressDate" value="true" /> <!-- 是否取消註釋 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--jdbc的資料庫連線--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/demo?serverTimezone=CST" userId="root" password="root"> <property name="nullCatalogMeansCurrent" value="true" /> </jdbcConnection> <!-- 型別轉換 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetPackage:生成的實體類所在的包 --> <!-- targetProject:生成的實體類所在的硬碟位置 --> <javaModelGenerator targetPackage="com.example.mysqldemo.model" 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 xml 檔案的包和位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <!-- 是否在當前路徑下新加一層schema,ex:false路徑com.example.mysqldemo.model, com.example.mysqldemo.model.[schemaName] --> <property name="enableSubPackages" value="false" /> <!-- 是否針對string型別的欄位在set的時候進行trim呼叫 --> <property name="trimStrings" value="true"/> </sqlMapGenerator> <!-- targetPackage 和 targetProject:生成的 java interface 檔案的包和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mysqldemo.repository" targetProject="src/main/java"> <!-- 是否在當前路徑下新加一層schema,ex:false路徑com.mysqldemo.demo.model, com.mysqldemo.demo.model.[schemaName] --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 配置表資訊 --> <!-- schema即為資料庫名 tableName為對應的資料庫表 domainObjectName是要生成的實體類 enable*ByExample, 是否生成 example類 --> <!-- 不同的表,修改tableName和domainObjectName就可以 --> <table tableName="book" domainObjectName="Book" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>

下方table可以指定生成部分表格進行生成

3.build 找到maven 包外掛執行的地方

雙擊即可執行,

如果報jdbc驅動錯誤,一般是xml配置出錯,檢查這個欄位

如果不行,需要手動指定jdbc包的位置

spring boot 環境配置(profile)切換

非常簡單,在內新增每一個環境的profile,例如

然後在主application.properties中去設定

spring.profiles.active=xxx,

然後在你設定的對應環境xxx內設定

profile.name=xxx即可

那麼這個時候你肯定會問,那不同的環境怎麼去區別是哪一個環境呢,

這個時候就需要配置JVM系統引數或應用引數

系統引數:

java -jar -Dspring.profiles.active=xxx springboot-profile-demo 0.0.1-SNAPSHOT.jar

應用引數:

java -jar --spring.profiles.active=dev springboot-profile-demo 0.0.1-SNAPSHOT.jar

因為我還沒有學到JVM,所以無法深度解析,反正這麼做就沒啥問題

以下是獲取當前環境的方式

// 當前環境配置名稱

@Value("${profile.name}") //讀取當前環境配置名稱

private String profileName;