mybatis-generator生成文件覆蓋問題的解決

mybatis-generator生成文件覆蓋

在Idea中使用Mybatis-generator plugin時遇到的問題,我的mybatis配置到的DB的服務中,每次部署微服務時需要install db這個微服務,將其打成jar包,供其他服務引用。

可是發現,我每次install或者package時候,mybatis-generator都會隨編譯自動運行,導致工程中的的mapper和dao都被沖掉。

解決方案

<configuration>
    <!--配置文件的位置-->
    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
    <verbose>true</verbose>
    <overwrite>true</overwrite>
</configuration>
<executions>
    <execution>
        <id>Generate MyBatis Artifacts</id>
        <!-- 該配置可避免maven install或者package時候運行該插件,導致本地mapper重新生成 -->
        <phase>deploy</phase>
        <goals>
            <goal>generate</goal>
        </goals>
    </execution>
</executions>
<dependencies>
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.2</version>
    </dependency>
</dependencies>

官方文檔中有如下描述:

The MBG plugin is bound to the generate-sources phase of a Maven build, so it will execute before the compile step. Also note that MBG generates both Java source files and XML resources. The MBG goal will bind both generated Java files and XML resources to the build and they will both be included in any JAR generated by the build.

mybatis-generator避免覆蓋自定義的sql方法

編寫PersonExtMapper.java 接口文件 編寫自定義方法

編寫PersonExtMapper.xml 映射文件 配置映射

PersonExtMapper.xml 和PersontMapper.xml(Mybatis生成器生成)的區別

指向各自的Maper接口文件

但相同

當數據庫字段發生改變 執行指令mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate 不會覆蓋自定義的方法

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: