Springboot整合Mybatis generator

Springboot整合Mybatis generator

  • 1. 新建Springboot工程
    • step 1
    • step 2
    • step 3
  • 2.引入Mybatis generator插件
  • 3.编写Mybatis generator的配置文件
  • 4.可能会出现的问题

1. 新建Springboot工程

step 1

Springboot整合Mybatis generator_第1张图片

step 2

Springboot整合Mybatis generator_第2张图片

step 3

Springboot整合Mybatis generator_第3张图片
红框中两项必选,最后生成工程

2.引入Mybatis generator插件

在pom文件的插件中,引入如下内容:

<plugin>
    <groupId>org.mybatis.generatorgroupId>
    <artifactId>mybatis-generator-maven-pluginartifactId>
    <version>1.3.7version>
    <configuration>
        
        <verbose>trueverbose>
        
        <overwrite>trueoverwrite>
        <configurationFile>src/main/resources/generatorConfig.xmlconfigurationFile>
    configuration>

    <dependencies>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.16version>
        dependency>
    dependencies>
plugin>

刷新下项目状态,可以在侧边栏的maven中看到此插件:
Springboot整合Mybatis generator_第4张图片

3.编写Mybatis generator的配置文件

在src/java/resources目录下,创建一个generatorConfigure.xml文件,文件内容可以参考官网编写:http://www.mybatis.org/generator/



<generatorConfiguration>
    
    
    
    
    <context id="default" targetRuntime="MyBatis3">
    
		
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

        
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            
            <property name="suppressAllComments" value="true"/>
        commentGenerator>
        
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/xxx?useUnicode=true&characeterEncoding=utf-8&serverTimezone=UTC"
                        userId="xxx"
                        password="xxx">jdbcConnection>
        
        <javaTypeResolver>
            
            
            
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>
        
        
        <javaModelGenerator targetPackage="实体类所在包"
                            targetProject="src/main/java">
            
            <property name="enableSubPackages" value="false"/>
            
            <property name="constructorBased" value="false"/>
            
            <property name="trimStrings" value="true"/>
            
            <property name="immutable" value="false"/>
        javaModelGenerator>
        
        <sqlMapGenerator targetPackage="mapper.xml所在路径"
                         targetProject="src/main/resources">
            
            <property name="enableSubPackages" value="false"/>
        sqlMapGenerator>
        
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="mapper接口所在包" targetProject="src/main/java">
            
            <property name="enableSubPackages" value="false"/>
        javaClientGenerator>
        
        <table tableName="数据库中的表名" domainObjectName="映射的实体类名">table>
    context>
generatorConfiguration>

编写完配置文件后,双击插件进行代码生成:
Springboot整合Mybatis generator_第5张图片
出现如下所示的提示信息后表示代码生成成功:
Springboot整合Mybatis generator_第6张图片
接下来就可以愉快的写增删改查了!!

4.可能会出现的问题

  • java.lang.IllegalArgumentException: Result Maps collection already contains value for com.XXX.BaseResultMap
    遇到上述问题多半是mapper文件生成的时候,由于追加写入的问题导致的,我当时也查了好久,最后玄学地解决了= =,mybatis generator插件版本换成1.3.7,在配置文件中加入下面这句应该就可以解决了,另外保险起见,重新生成mapper文件的时候一定记得把要生成代码的包下的所有代码全部删除重新生成,这样大概率可以完美解决这种问题:

    <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
    
  • mapper文件没有扫描到
    记得在程序主入口出添加@MapperScan注解去扫描你的dao层接口
    Springboot整合Mybatis generator_第7张图片

你可能感兴趣的:(java)