mybatis-generator 详细配置及使用,爬坑记录
mybatis-generator 详细配置及使用,爬坑记录
提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题。
如果失败,建议使用相同的项目结构,包名,进行重试,博主也是多次调试,才成功。一些常见问题,看报错提示信息是可以看懂的,加油。
整个项目的源代码,最后,也会给出下载链接。
这是根据数据库,生成后的项目结构:

一、简介:
mybatis-geneator 是一款 mybatis 自动代码生成工具,可以通过配置,快速生成 mapper 和 xml 文件。
二、配置方法:
(1)在项目的 pom.xml 文件中添加插件配置
详细的 pom.xml 配置:
<plugin>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-maven-plugin</artifactId>
	<version>1.3.7</version>
	<dependencies>
		<dependency>
		  <groupId>org.mybatis.generator</groupId>
 		  <artifactId>mybatis-generator-core</artifactId>
          <version>1.3.7</version>
        </dependency>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.13</version>
        </dependency>
     </dependencies>
     <executions>
        <execution>
          <id>mybatis generator</id>
          <phase>package</phase>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <!--允许移动生成的文件-->
            <verbose>true</verbose>
            <!--允许自动覆盖文件-->
            <overwrite>true</overwrite>
            <configurationFile>
              src/main/resources/generatorConfig.xml
            </configurationFile>
       </configuration>
     </execution>
     </executions>
</plugin>
(2)根据自己配置的文件路径及名称,创建相应 generatorConfig.xml 文件,位置如下图:

(3)先手动创建一些目录,在配置的时候回有提示,大大降低出错概率,整体目录结构:

三、创建 MySQL 数据库,创建 2 两个表:
之前介绍过多次命令行创建数据库表了,查看 MySQL - 最经典的 命令行操作数据库 + 表(增删改查实例)
这次使用 Navicat for MySQL,如果没有安装请参考:Navicat for MySQL 最新版安装与破解 + 报错解决办法
(1)建立连接,创建数据库:

(2)数据库名,选择编码:

(3)新建表:

(4)填写表信息:
主键:

其他:

表名为 user_info
(5)插入一条信息:

(6)细心的你可能发现了没有 upwd 存密码的字段,我们这里放在另外一张表上,新建表 user_pwd:

四、编辑 mybatis-generator.xml 文件:
(重要!)
(请详细看注释!自行修改自己的配置信息)
修改目录请自行对应,可放大查看:

generatorConfig.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>
    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">
        <!--jdbc的数据库连接-->
        <!--这里是以变量的形式定义,具体的值在 application.properties 文件中-->
        <!--jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC"
                        userId="root"
                        password="xiaopengwei">
        </jdbcConnection>
        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <!-- DataObject 类存放位置 -->
        <javaModelGenerator targetPackage="com.miaoshapro.dataobject"
                            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="mapping"
                         targetProject=".\src\main\resources">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.miaoshapro.dao" targetProject=".\src\main\java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!--生成对应表及类名-->
        <table tableName="user_info" domainObjectName="UserDO">
        </table>
        <table tableName="user_pwd" domainObjectName="UserPwdDO">
        </table>
    </context>
</generatorConfiguration>
五、执行 mybatis-generator 插件
(1)打开配置:

(2)点击 +,选择 Maven:

(3)输入信息,命令:

(4)选中刚才创建的名称,点击执行:

六、运行结果:
(1):

(2):

(3):

(4):

mybatis-generator 详细配置及使用,爬坑记录的更多相关文章
- (转)springMVC+mybatis+ehcache详细配置
		一. Mybatis+Ehcache配置 为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方 ... 
- elasticsearch 单节点搭建与爬坑记录
		elasticsearch 单节点搭建与爬坑记录 prepare 虚拟机或者云服务器(这里用的是阿里云ECS) linux---centos7 安装完毕的jdk 相应的安装包(在https:/ ... 
- centos7安装Mysql爬坑记录
		centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ... 
- 【MyBatis】MyBatis自动生成代码查询之爬坑记
		前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ... 
- Mybatis Generator主要配置详解
		MyBatis 的代码生成主要配置文档[具体] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ... 
- MyBatis Generator XML 配置
		使用反向生成器可以生成数据库表对应的实体类和mapper映射文件: 以下是具体介绍相应xml文件的配置: 附上一张配置的模板: <?xml version="1.0" enc ... 
- 03、Swagger2和Springmvc整合详细记录(爬坑记录)
		时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ... 
- mybatis generator.xml  配置 自动生成model,dao,mapping
		generator.xml文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE gener ... 
- Mybatis Generator 代码生成配置
		<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ... 
随机推荐
- (转载)es进行聚合操作时提示Fielddata is disabled on text fields by default
			原文地址:http://blog.csdn.net/u011403655/article/details/71107415 根据es官网的文档执行 GET /megacorp/employee/_se ... 
- JAVA面试精选【Java算法与编程二】
			在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来.算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时 ... 
- Hadoop(三)搭建Hadoop全分布式集群
			原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ... 
- Docker概念学习系列之Docker与传统虚拟机差异(4)
			不多说,直接上干货! 见[博主]撰写的https://mp.weixin.qq.com/s/YihjPONUcUi4b_7RC8oLYw 传统虚拟化是在硬件层面实现虚拟化,需要有额外的虚拟机管理应 ... 
- Hive执行过程中出现Caused by : java.lang.ClassNotFoundException: org.cloudera.htrace.Trace的错误解决办法(图文详解)
			不多说,直接上干货! 问题详情 如下 这个错误的意思是缺少 htrace-core-2.04.jar. 解决办法: 将$HBASE_HOME/lib下的htrace-core-2.04.jar拷贝到$ ... 
- CompoundScope说明
			A class scope adds capabilities to keep track of changes in relatedclass scopes - this allows client ... 
- koa2 get请求后台正常接收参数 前端报404错误
			刚学习一门技术时,总会踩一些坑. 前端代码 function del(mId){ $.ajax({ type:"get", url:"/delUser", da ... 
- SHA-1退休:数千万用户通向加密网站之路被阻
			 Facebook和Cloudflare警告道:上千万用户将无法访问只使用SHA-2签名证书的HTTPS网站.2016年-2017年是SHA-1算法的缓冲期.2017年开始CA机构将不能颁发含有sh ... 
- Redhat6.8下安装Oracle11gR2
			Step1.配置本地yum源,方便安装依赖包 df -h 补充: df命令查看 linux系统磁盘空间以及使用情况,-h代表方便阅读方式显示 :/dev/sr0为光驱设备名 mkdir cdrom ... 
- 未能找到类型或命名空间名List
			解决方法添加引用using System.Collections.Generic; 
