本文主要用于解决mybatis-generator根据数据库反向生成model类的时候基类继承问题,即rootClass属性被覆盖问题。
首先,由于执行generator时找不到BaseDomain,所以需要把本项目打jar包,并作为引用
1.在写好我们要打jar包的java程序后,点击idea右上角如图所示位置
2.先选择Artifacts,再点击加号
3.点击Empty新建一个新的jar包
4.如图,设置jar包名称,jar包打好后所在的路径,以及添加工程编译文件
5.点击OK后,会回到idea界面
6.然后按照图示依次点击选项
7.最后选择你的jar包名,点击build,jar包便打包成功,进入你在第4步时设置好的路径下就可以看到你的jar包了
8.运行jar包程序,
命令:java -cp jar包路径 主类全类名
然后把jar包作为引用添加maven,即labourjar.jar
<plugins>
<!--配置mbg-->
<!--此处应注意mybatis-generator-maven-plugin的版本-->
<!--较低版本的依赖会导致xml中包含@mbg.generator注释的代码不会被覆盖,造成增量叠加问题-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>-->
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>labourjar</groupId>
<artifactId>labourjar</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/labourjar.jar</systemPath>
</dependency>
</dependencies>
</plugin>
</plugins>
配合generatorConfig.xml中
<property name="immutable" value="false"/>
<!-- 设置一个根对象,
如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
1,属性名相同,类型相同,有相同的getter/setter方法;
-->
<property name="rootClass" value="com.jinchan.labour.common.BaseDomain" />
SUCCESS!!!