pom.xml
<plugin>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-maven-pluginartifactId>
<version>1.3.3version>
<configuration>
<configurationFile>mybatis-generator.xmlconfigurationFile>
<verbose>trueverbose>
<overwrite>trueoverwrite>
configuration>
plugin>
mybatis-generator.xml
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\abc\.m2\repository\mysql\mysql-connector-java\8.0.29\mysql-connector-java-8.0.29.jar"/>
<context id="tables" targetRuntime="MyBatis3" defaultModelType="flat">
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<commentGenerator>
<property name="suppressAllComments" value="true"/>
commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/study?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
userId="root"
password="123456">
<property name="nullCatalogMeansCurrent" value="true"/>
jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
javaTypeResolver>
<javaModelGenerator targetPackage="com.guo.springboot.model"
targetProject="D:\SpringBoot\day15\02-springboot-dubbo-ssm-interfacce\src\main\java">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="true"/>
javaModelGenerator>
<sqlMapGenerator targetPackage="com.guo.springboot.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.guo.springboot.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
javaClientGenerator>
<table tableName="student" domainObjectName="Student"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
context>
generatorConfiguration>
defaultModelType属性不设置默认是conditional
此时主键生成一个XXKey对象(key class),
逆向工程生成实体的个数与数据库表设计的复杂度有关系,默认会根据表中主键和blob来确定创建实体的个数,,如果只需要一个实体还是可以通过生成器配置文件来设置的。
MyBatis Generator配置文件context元素有一个defaultModelType属性,这个属性的值会影响实体类(或叫domain类,model类)的生成。
defaultModelType:指定生成对象的样式——支持conditional、 flat、hierarchical3个值:
conditional 这是默认值
这个模型与hierarchical模型相似,除了如果一个实体类只包含一个字段,则不会单独生成此实体类。因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
flat
该模型为每一张表只生成一个实体类
。所有内容(主键,blob)等全部生成在一个对象中;一般使用这个模型就够了。
hierarchical
如果表有主键,
主键生成一个XXKey对象(key class),
Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
MBG会在所有生成的实体类之间维护一个继承关系。
显然这个模型比较复杂。
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.guo.springboot.mapper.StudentMapper.BaseResultMap
逆向工程生成的映射文件(StudentMapper.xml)中BaseResultMap重复出现,mapper.xml文件中也会出现关于这些字段的SQL语句
解决办法:在生成器的mybatis-generator.xml配置文件里的数据库连接地址中添加:nullCatalogMeansCurrent参数(
)