目录

一、GeneratorConfig.xml配置文件:(解释见注释)

(一)、模板的使用方法:

(二)、对两个标签重点解释下:

二、配置pom.xml:

三、IDEA中的使用:

四、注意事项:


先附上官网链接:http://mybatis.org/generator/index.html

小编根据开发经验,将GeneratorConfig.xml 文件整理了一下(绝对处女座),格式整洁明了,注释清晰易懂,并且把IDEA使用的方法,和可能遇到的问题都一一罗列了下,希望可以真正的帮到你。

一、GeneratorConfig.xml配置文件:(解释见注释)

Mybatis Generator 的配置远不止下面我列出的这些,而下面文件中列举标签,都是我工作中经常使用的,涵盖的很全了,非常基础,但是却很重要。如果遇到特殊需求,请跳转到官网,查看文档说明,连接见微博第一行。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包 --><classPathEntry  location="D:\maven-warehouse\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/><!-- <classPathEntry  location="D:\maven-warehouse\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/> --><context id="DB2Tables"  targetRuntime="MyBatis3"><!-- 实体类生成序列化属性--><plugin type="org.mybatis.generator.plugins.SerializablePlugin" /><!-- 实体类重写HashCode()和equals()--><plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /><!-- 实体类重写toString() --><plugin type="org.mybatis.generator.plugins.ToStringPlugin" /><commentGenerator><!-- 是否去除自动生成的注释 --><property name="suppressAllComments" value="true"/><!-- 生成注释是否带时间戳--><property name="suppressDate" value="true"/><!-- 生成的Java文件的编码格式 --><property name="javaFileEncoding" value="utf-8"/><!-- 格式化java代码--><property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter" /><!-- 格式化XML代码--><property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter" /></commentGenerator><!-- 数据库连接驱动类,URL,用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://127.0.0.1:3306/dbName?useUnicode=true&amp;characterEncoding=UTF-8"userId="root" password="root"></jdbcConnection><!-- java类型处理器:处理DB中的类型到Java中的类型 --><javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"><!-- 是否有效识别DB中的BigDecimal类型 --><property name="forceBigDecimals" value="true"/></javaTypeResolver><!-- 生成Domain模型:包名(targetPackage)、位置(targetProject) --><javaModelGenerator targetPackage="com.project.business.domain" targetProject="D:/workSpace/project/src/main/java"><!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false --><property name="enableSubPackages" value="true"/><!-- 设置是否在getter方法中,对String类型字段调用trim()方法--><property name="trimStrings" value="true"/></javaModelGenerator><!-- 生成xml映射文件:包名(targetPackage)、位置(targetProject) --><sqlMapGenerator targetPackage="com.project.business.dao" targetProject="D:/workSpace/project/src/main/java"><property name="enableSubPackages" value="true"/></sqlMapGenerator><!-- 生成DAO接口:包名(targetPackage)、位置(targetProject) --><javaClientGenerator type="XMLMAPPER" targetPackage="com.project.business.dao" targetProject="D:/workSpace/project/src/main/java"><property name="enableSubPackages" value="true"/></javaClientGenerator><!-- 要生成的表:tableName - 数据库中的表名或视图名,domainObjectName - 实体类名 --><table tableName="tableName" domainObjectName="tableNameDO"enableCountByExample="false"enableUpdateByExample="false"enableDeleteByExample="false"enableSelectByExample="false"selectByExampleQueryId="false"></table></context>
</generatorConfiguration>

(一)模板的使用方法:

模板支持直接复制使用,前提是:一定要记得修改数据库驱动位置和jdbc.Driver信息。

  1. 数据库驱动位置项目加载的本地Maven库中mysql-connector-java-5.1.47.jar的存放位置;
  2. jdbc.Draver:项目使用的本地数据库地址,以及账号、密码;
  3. 每次只能对一张表进行操作,所以需要修改要生成的表明名,实体名;

(二)、对两个标签重点解释下:

1 . <plugin > 标签:决定生成的实体类是否包含 - 序列化属性,HashCode(),equals(),toString()方法。

使用该配置文件中生成的方法,因为使用StringBuilder类方法的缘故,其性能比IDEA自动生成的方法还要好。

        <!-- 实体类生成序列化属性--><plugin type="org.mybatis.generator.plugins.SerializablePlugin" /><!-- 实体类重写HashCode()和equals()--><plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /><!-- 实体类重写toString() --><plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

2.  <javaTypeResolver> 标签:决定DB中的类型到Java实体类中的类型

- false:默认都是BigDecimal,不做识别;

- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型,规则如下:

  • scale > 0  ||  length > 18:使用BigDecimal;
  • scale = 0 && length[10,18]:使用Long;
  • scale = 0 && length[5,9]:使用Integer;
  • scale = 0 && length < 5:使用Short;
        <!-- java类型处理器:处理DB中的类型到Java中的类型 --><javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"><!-- 是否有效识别DB中的BigDecimal类型 --><property name="forceBigDecimals" value="true"/></javaTypeResolver>

二、配置pom.xml:

注意:<configurationFile> 标签中存放的,是 generatorConfig.xml 文件在项目中的绝对路径。

    <dependencies> ......<!--mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version><scope>runtime</scope></dependency>......</dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><executable>true</executable></configuration></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration></plugin></plugins><finalName>projectName</finalName></build>

三、IDEA中的使用:

使用IDEA中的maven插件直接快速生成,位置如下:(双击运行)

四、注意事项:

1. GeneratorConfig.xml 文件中加载的数据库驱动,要和pom.xml文件中mysql-connector-java的版本一致!!

如:留意我们上面的 GeneratorConfig.xml 文件中被注释掉的第8行,由于其加载的驱动版本为8.0.17,高于

pom.xml文件加载的版本5.1.47,导致插件运行报错,不可使用。

2.报异常: java.lang.RuntimeException: Cannot instantiate object of type org.mybatis.generator.plugins.ToStringPlugin

该问题的原因是,你的<artifactId>mybatis-generator-maven-plugin</artifactId>版本低或者不匹配,改成1.3.6就可以了,如下:

    ......<groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version>......

3. 如果版本没有问题,加载驱动的 <classPathEntry> 标签依然报红色,可能需要如下操作:

File --> Settings --> ① --> ② --> ③ --> 输入URL:http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd --> 效果见④

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

GeneratorConfig.xml文件配置详解及IDEA中的使用,处女座小编整理,值得一看相关推荐

  1. java crossdomin.xml_crossdomain.xml的配置详解

    目录 1 简介 2 crossdomain.xml的配置详解 3 总结 1 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及 ...

  2. Tomcat 的 Server 文件配置详解

    转载自  Tomcat 的 Server 文件配置详解 前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件, ...

  3. Pom.xml文件教程详解

    原创整理不易,转载请注明出处:史上最全的maven pom.xml文件教程详解 代码下载地址:http://www.zuidaima.com/share/1781583829978112.htm   ...

  4. ssh2的application.xml配置文件配置详解

    ssh2的application.xml配置文件配置详解 1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="classp ...

  5. k8s的yaml文件配置详解(三)

    k8s的服务资源文件配置详解 注:本文章只作配置项解释,请灵活运用 --- #Service kind: Service apiVersion: v1 metadata: name: service ...

  6. java调用项目中的文件_详解eclipse项目中.classpath文件的使用

    1 前言 在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classp ...

  7. maven之setting.xml的配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  8. php.ini文件配置详解,非常详细的php.ini 配置文件详解

    ​php的配置文件详解 ;;;;;;;;;;;;;;;;; ;; 关于php.ini ;; ;;;;;;;;;;;;;;;;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中P ...

  9. Qt工程pro文件配置详解

    文章目录 1 pro文件常用配置 1.1 注释 1.2 CONFIG 1.3 DEFINES 1.4 FORMS 1.5 HEADERS 1.6 INCLUDEPATH 1.7 LIBS 1.8 QT ...

最新文章

  1. 从业务到平台的思维转变
  2. mysql date time类型_数据库datetime是什么类型
  3. 回调函数与Delphi的事件模型
  4. android到顶部,Android recyclerview滚动到顶部
  5. Spring表单的initBinder:绑定表单复杂属性
  6. 用官方2012版本131兆,一共有四个自带软件
  7. SMT精密电阻对照表
  8. 在PHP中如何要json中的数据,如何在不知道键值的情况下在php中读取JSON数据
  9. SpringBoot创建简单的hello world
  10. 游戏服务器停机维护,网络游戏是如何做到服务器不停机维护的?
  11. 软件架构引言之项目管理的问题
  12. UOJ 67 新年的毒瘤 - Tarjan
  13. Linux笔记(df命令,du命令,磁盘分区)
  14. G20:奥巴马称美国拥有全球最大最好的网络武器库
  15. php中array_merge()与$arr1+$arr2两个数组直接相加的区别
  16. GC root 解决了循环引用的垃圾回收问题
  17. animals中文谐音_张杰pretty white lies中文音译歌词
  18. 人脸识别实践(2) - 人脸识别系统展示
  19. 云服务和传统服务器相比有哪些明显的优势
  20. [区块链]区块链技术在教育领域的应用

热门文章

  1. oracle数据库单表查询相关练习题及答案写法
  2. Python酷炫毕业论文案例,对全国大学数据进行可视化分析
  3. 如何进行“花式”HTTP接口测试
  4. 基于主机的入侵检测tripwire
  5. JAVA知识体系之多线程篇
  6. Python初学者:寻找文件中的最长单词
  7. Java实现 蓝桥杯VIP 算法提高 淘淘的名单
  8. 人工智能技术在国外舰载武器系统中的应用浅析
  9. 钢绞线弹性模量怎么计算_15.24钢绞线弹性模量
  10. ML中几种常见熵学习笔记