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

2023-11-02

填错信息导致的常见问题

 

一、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>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实操----mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config 的相关文章

随机推荐

  • QT信号与槽的6种连接方式以及传递参数为自定义参数时

    文章目录 前言 一 信号与槽的连接 二 connect的第五个参数 三 传递参数为自定义参数时 扩展 前言 QT提供了信号与槽机制来实现对象之间的通信 只有QObject及其派生类才能使用信号和槽机制 且在类之中还需要使用Q OBJECT宏
  • CVTE面试总结(全网面经,已收offer)

    CVTE面试总结 文章目录 CVTE面试总结 CVTE一面 CVTE二面 CVTE面试hr面准备工作 1 问工资 2 给前面两轮面试打分 3 家庭关系和谁最好 4 未来5 10年会做什么 怎么规划 5 有没有别的offer 6 如果给off
  • 专家讲解 Hadoop:HBASE松散数据存储设计

    http developer 51cto com art 201006 203833 htm 本节和大家一起学习一下Hadoop HBASE松散数据存储设计方面的内容 希望通过本节介绍大家能够掌握Hadoop HBASE松散数据存储设计的方
  • 设计模式复习(七)-------适配器模式

    1 定义 将一个类的接口转换成客户希望的另一个接口 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 设计模式 GoF 适配 即在不改变原有实现的基础上 将原先不兼容的接口转换为兼容的接口 Adapter模式很像货
  • C语言之移位操作符、位操作符详解

    目录 1 移位操作符 2 位操作符 1 移位操作符 分为左移操作符 lt lt 和右移操作符 gt gt 左移操作符 移位规则 左边抛弃 右边补0 什么意思呢 现在就让我来仔细讲解一番 比如我们定义一个整型变量a 给它赋初值5 如int a
  • tablayout固定在顶端

    当tablayout上方还有其他布局只需要给其他布局添加 app layout scrollFlags scroll 就可以实现
  • postgresql查找数据库端口

    netstat a grep PGSQL
  • 使用git时出现fatal: Authentication failed for

    出现如下错误 fatal Authentication failed for 这是因为我使用的git账号的密码修改了 但是之前已经保存了原来的密码 所以就是密码错误导致无法登陆 但是又不会弹出来让我重新输入密码的界面 这就尴尬了 后来找到了
  • MSYS2 介绍、下载与安装、Pacman常用命令

    一 MSYS2 介绍 MSYS2 官网 MSYS2 MSYS2 Minimal SYStem 2 是一个集成了大量的GNU工具链 工具和库的开源软件包集合 它提供了一个类似于Linux的shell环境 可以在Windows系统中编译和运行许
  • odoo15设置定时任务

    概念 主要是 ir cron模型 它有以下属性 ir actions server id 服务端动作 cron name 任务名称 user id 调度程序用户 默认是当前环境用户 active 默认True interval number
  • KNN最近邻算法——原理和Python代码

    KNN最近邻算法是一种监督学习算法 基本思想是取距离测试数据最近的K个点 这K个点训练数据属于某一类型的数量多 则将该测试数据点也判断为该类 距离可以取 1 欧氏距离 2 曼哈顿距离 算法 1 计算测试数据与各个训练数据之间的距离 2 按照
  • java基础:Object类和Objects工具类的介绍

    1 Object 1 说明 Object类是所有类 数组 枚举类的父类 java允许把任何类型的对象赋给Object类型的变量 当定义一个类时没有使用extends为它显式指定父类 则该类默认继承Object父类 2 Object类的常用方
  • Servlet的Cookie与Seesion的介绍

    什么是Cookie Cookie是服务器在本地机器上存储的小段文本 它是一个简单的字符串形式的键值对 网络服务器用HTTP头向客户端发送cookie 一般情况下Cookie是由服务端生成的 当然js也能操作cookie 在客户端 浏览器解析
  • Python将numpy(.npy文件)存储为.ply文件

    Python将numpy npy文件 存储为 ply文件 安装Open3D From NumPy to Ply Open3D文档 安装Open3D pip install open3d From NumPy to Ply Pass xyz
  • [561]TensorFlow练习1: 对评论进行分类

    TensorFlow是谷歌2015年开源的一个深度学习库 到现在正好一年 和TensorFlow类似的库还有Caffe Theano MXNet Torch 但是论火爆程度 TensorFlow当之无愧 短短一年就在Github就收获了4万
  • ubuntu安装docker及在docker中使用gpu

    ubuntu安装docker和nvidia docker2 docker19以下版本 安装docker 安装nvidia docker2 docker19以上版本 安装docker 安装nvidia container runtime do
  • CSS布局

    CSS布局 div标签 概念 div div 本身是HTML4的标签 因其特殊性而一直作为CSS布局的核心标签 特点 div div 本身默认样式极少 只有默认块级元素这一项 没有太多默认属性 默认宽度为100 总结 本身不具有太多默认的样
  • CTFshow--web--红包题第六弹

    提示了不是sql注入 需要找源码 查看网页源代码
  • 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建

    文章目录 1 简介 2 环境准备 3 安装hadoop 3 修改Hadoop配置文件 3 1 hadoop env sh配置 3 2 core site xml配置 3 3 hdfs site xml配置 3 4 mapred site x
  • 实操----mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config

    填错信息导致的常见问题 一 pom里面添加配置 SpringBoot项目创建完成后 在SpringBoot项目的src main resources目录下创建generatorConfiguration xml文件 有时候出现报错找不到文件