实操----mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config

填错信息导致的常见问题

 

一、pom里面添加配置

SpringBoot项目创建完成后,在SpringBoot项目的src/main/resources目录下创建generatorConfiguration.xml文件。(有时候出现报错找不到文件,可以将文件放在pom.xml同级目录下)就是pom里面添加配置。加载plugins里面!注:红圈的路径对应的就是刚才添加的配置文件。

         <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <configurationFile>src/main/resources/mybatis-generator/mybatis-generator-cfg.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <!-- <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> -->
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>
                </dependencies>
            </plugin>

二、添加运行配置、运行文件(对了记得吧application.properties后缀改为yml。不然会找不到yml。或者在之前的那个配置文件把yml改为properties,都可以。)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 懒人专用:请copy
    mybatis-generator:generate -e

三、配置信息

注意:

需要修改的地方:

  • javaModelGenerator  生成文件存放的地址。重点:targetProject指的是生成的文件存放地址,也可以是D:\。
  • <tablename>标签对应着一张你想转化的表。

<?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和url,只能使用其中一个属性来指定,同时出现会报错,resource属性指定classpath下的属性文件,url属性指定文件系统上的特定位置-->
    <!--<properties resource=""/>-->
    <!--<properties url="">-->
 
    <!--classPathEntry:通过属性location执行数据库的JDBC驱动路径,此处换成你自己的驱动位置,属于可选,可以不配置 -->
    <classPathEntry location="D:\java\maven-repository\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar"/>
 
    <!--context标签用于指定生成1组对象的环境,,例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。context标签只有一个必选属性id,用来唯一确定该标签-->
    <context id="MySQLTables" targetRuntime="MyBatis3" defaultModelType="flat">
 
        <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
        <property name="autoDelimitKeywords" value="true"/>
 
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="utf-8"/>
 
        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
 
        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
 
        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
 
        <!-- 注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
            <property name="suppressDate" value="false"/> <!-- 是否生成注释代时间戳-->
        </commentGenerator>
 
        <!-- jdbc连接-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.x.xxx:3306/mybatis_test?serverTimezone=UTC&amp;setUnicode=true&amp;characterEncoding=utf8" userId="xxxx"
                        password="xxxx">
            <!-- 防止生成其它库的表 -->
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>
 
        <!-- 类型转换 -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
 
        <!-- 生成实体类地址 -->
        <javaModelGenerator targetPackage="com.example.tkmybatis.model" targetProject="src/main/java">
            <!-- 是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值去掉前后空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
 
        <!-- 生成mapper.xml文件存放地址  targetProject指的是生成的文件存放地址,也可以放在本地,自己手动加入进去是D:\ -->
        <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
 
        <!-- 生成接口mapper -->
        <javaClientGenerator targetPackage="com.example.tkmybatis.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
            <property name="nullCatalogMeansCurrent" value="true"/>
        </javaClientGenerator>
 
        <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 enableSelectByPrimaryKey相应的配置表示是否生成相应的接口 -->
        <table tableName="t_%"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"
               enableSelectByPrimaryKey="true"
               enableUpdateByPrimaryKey="true"
               enableDeleteByPrimaryKey="true"
        >
            <!-- 设置为false,MBG会尝试将返回的名称转化为驼峰形式 -->
            <property name="useActualColumnNames" value="false"/>
        </table>
 
    </context>
</generatorConfiguration>

说明文字含义:

这里说一下文件结构,总体由两部分组成,分别是XML文件头和<generatorConfiguration>标签。

XML文件头:文件头中有一个mybatis-generator-config_1_0.dtd,它用于定义该配置文件中所有标签和属性的用法和限制。

<generatorConfiguration>标签:标签内放置具体配置内容,有三个自己标签,分别是<properties>、<classPathEntry>和<context>,在配置这三个标签的时候,要注意顺序,和这里列出的顺序要一致。

<properties>标签:用来指定一个需要在配置中解析使用的外部属性文件,最多可以配置1个,也可以不配置。引入属性文件后,可以在配置中使用${property}这种形式的引用,通过这种方式引用属性文件中的属性值,对于后面需要配置的JDBC信息会很有用。它包含两个属性,分别是resource和url,二者只能使用其中一个,同时使用会报错,resource属性执行classpath下的属性文件,url属性指定系统上的特定文件。

<classPathEntry>标签:这个标签属于可选,可配置多个,也可不配置,最常见的用法是通过属性location指定驱动的路径。

<context>标签:用于指定生成一组对象的环境,例如指定要连接的数据库,要生成的对象的类型和要处理的数据库中的表,该标签至少配置一个,可以配置多个。标签内只有一个必选属性id,用来唯一确定该标签,此外还有几个可选属性:defalutModelType、targetRuntime、introspectedColumnImpl,一般情况下,配置<context id="xxx" defalutModelType="flat">就可以。

defalutModelType属性:定义了MBG如何生成实体类,有三个可选值,分别是flat、hierarchical和conditional,通常使用flat,它表示“该模型只为每张表生成一个实体类,这个实体类包含表中的所有字段”。

targetRuntime属性:用于指定生成代码的运行时环境,有两个可选值,分别是MyBatis3和MyBatis3Simple,MyBatis3是默认值,MyBatis3Simple表示不会生成于Example相关的方法。

重点
以下提几点需要注意的问题。

1、注意mysql的版本问题,不能超过5 。博主遇到过问题超过五就报错。太久了忘了记录了。跟我一样选一样默认依赖。新建SpringBoot项目后MySql-Connector默认是8.几。所以加一个版本号就行。

在这里插入图片描述
2、配置文件里面的连接依赖和项目配置的依赖路径一致。不然也会报错。可直接右键jar包->find in path -> copy路径到右边配置文件对应位置即可。如果location配置的是yaml文件的情况下,上面用的是驱动包

 在这里插入图片描述


3、还是开始提的pom里面的generator.xml路径一定要配对。参考文章

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web-services</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>2.1.5.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.5</version>
            <configuration>
                <configurationFile>src/main/resources/mybatis-generator/mybatis-generator-cfg.xml</configurationFile>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
            </configuration>
            <executions>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                    <version>1.3.5</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值