mybatis-generator 详细配置,爬坑记录

版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/qq_40147863/article/details/85886166

mybatis-generator 详细配置,爬坑记录

一、简介:

mybatis-geneator 是一款 mybatis 自动代码生成工具,可以通过配置,快速生成 mapper 和 xml 文件。

二、配置方法:

(1)在项目的 pom 文件中添加插件配置

在上一篇 Spring Boot + MyBatis 电商项目 - 03- MySQL 连接、DRUID、MyBatis-generator
的最后已经介绍了很详细的 pom.xml 配置:

<plugin>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>1.3.2</version>
  <executions>
    <execution>
      <id>Generate MyBatis Files</id>
      <phase>package</phase>
      <goals>
      <goal>generate</goal>
      </goals>
      <configuration>
        <!--允许移动生成的文件-->
        <verbose>true</verbose>
        <!--实际项目要注意是否可以设置成 true!-->
        <!--允许自动覆盖文件-->
        <overwrite>true</overwrite>
        <configurationFile>
         src/main/resources/mybatis-generator.xml
        </configurationFile>
      </configuration>
      </execution>
      </executions>

      <dependencies>
        <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
        </dependency>
        
        <dependency>
           <groupId>org.mybatis.generator</groupId>
           <artifactId>mybatis-generator-core</artifactId>
           <version>1.3.7</version>
        </dependency>
       </dependencies>
</plugin>

(2)根据自己配置的文件路径及名称,创建相应 mybatis-generator.xml 文件,下面进行配置:

目录结构:

三、编辑 mybatis-generator.xml 文件:

(重要)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <!--导入属性配置-->
    <properties resource="datasource.properties"></properties>

    <!-- 指定数据库驱动的jdbc驱动jar包的位置 -->
    <classPathEntry location="${db.driverLocation}" />

    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">

        <!--optional,旨在创建class时,对注释进行控制-->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--jdbc的数据库连接-->
        <jdbcConnection driverClass="${db.driverClassName}"
                        connectionURL="${db.url}"
                        userId="${db.username}"
                        password="${db.password}">
        </jdbcConnection>

        <!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
            <!-- 不是 double 和 long 类型 -->
            <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="com.mall.pojo"
                            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 文件的包和位置 -->
        <sqlMapGenerator targetPackage="mappers"
                         targetProject=".\src\main\resource">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mall.dao" targetProject=".\src\main\java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <table tableName="user" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

四、配置 application.properties 文件:

添加下面内容:
(当然这些都不自己输入,后面的内容需要自己进行配置,所以路径会经常出问题,所以我们不自己输出路径,下面会介绍如何找)

db.driverLocation=C:/Users/Administrator/m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar
db.driverClassName=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
db.username=root
db.password=123456

找上述需要的路径:

  • (1)先找出这三级目录:

  • (2)再找 jdbc/Driver,右键拷贝路径:

  • (3)但是拷贝的路径斜杠是反着的:

C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\8.0.13\mysql-connector-java-8.0.13.jar!\com\mysql\cj\jdbc\Driver.class

需要我们手动改成:

C:/Users/Administrator/m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar
  • (4)再拷贝 引用:
com.mysql.cj.jdbc.Driver

后续补一些,连接数据数库问题解决方案

更多文章链接

猜你喜欢

转载自blog.csdn.net/qq_40147863/article/details/85886166
今日推荐