一、简介

  前面写过一篇文章介绍了如何使用Mybatis,那么如果我门数据库中有许许多多的表的时候,每张表都手动去写对应的mapper的映射关系,会非常麻烦,那么我们可以使用代码生成器MyBatis-Generator来帮助我们做这些事情,只需要简单的配置就可以实现半自动化的代码生成任务。

二、SpringBoot整合MyBatis-Generator

  话不多说,直接进入正题,记录一下怎么在SpringBoot整合。

Maven依赖(dependencies部分)

  1. <!--增加mybatis核心包依赖-->
  2. <dependency>
  3.   <groupId>org.mybatis.spring.boot</groupId>
  4.   <artifactId>mybatis-spring-boot-starter</artifactId>
  5.   <version>2.1.1</version>
  6. </dependency>
  7. <!--mybatis自动生成mapper工具-->
  8. <dependency>
  9.   <groupId>org.mybatis.generator</groupId>
  10.   <artifactId>mybatis-generator-maven-plugin</artifactId>
  11.   <version>1.3.7</version>
  12. </dependency>
  13. <!--ibatis依赖【解决mybatis生成文件时的注解报错】-->
  14. <dependency>
  15.   <groupId>org.apache.ibatis</groupId>
  16.   <artifactId>ibatis-core</artifactId>
  17.   <version>3.0</version>
  18. </dependency>

Maven依赖(dependencies部分)

  1. <!--添加mybatis-generator组件 start-->
  2. <plugin>
  3.   <groupId>org.mybatis.generator</groupId>
  4.   <artifactId>mybatis-generator-maven-plugin</artifactId>
  5.   <version>1.3.7</version>
  6.   <configuration>
  7.     <!--指定了配置文件:generatorConfig.xml位置-->
  8.     <configurationFile>src/main/resources/db/generatorConfig.sample.xml</configurationFile>
  9.     <verbose>true</verbose>
  10.     <overwrite>true</overwrite>
  11.   </configuration>
  12.   <executions>
  13.     <execution>
  14.       <id>Generate MyBatis Artifacts</id>
  15.       <goals>
  16.         <goal>generate</goal>
  17.       </goals>
  18.       <phase>generate-sources</phase>
  19.     </execution>
  20.   </executions>
  21.   <!--此处必须添加mysql驱动包-->
  22.   <dependencies>
  23.     <dependency>
  24.       <groupId>mysql</groupId>
  25.       <artifactId>mysql-connector-java</artifactId>
  26.       <scope>runtime</scope>
  27.       <version>8.0.16</version>
  28.     </dependency>
  29.   </dependencies>
  30. </plugin>
  31. <!--添加mybatis-generator组件 end-->

  配置好pom.xml文件以后对整个项目进行install,插件里面就会多一个mybatis-gennerator的插件,如下图:

配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  4. <generatorConfiguration>
  5. <context id="test" targetRuntime="MyBatis3">
  6. <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>
  7. <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
  8. <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
  9. <!--覆盖生成XML文件-->
  10. <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>
  11.  
  12. <commentGenerator>
  13. <!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示保护 -->
  14. <!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->
  15. <property name="suppressDate" value="true"/>
  16. <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  17. <property name="suppressAllComments" value="true"/>
  18. </commentGenerator>
  19. <!--数据库链接URL,用户名、密码 -->
  20. <jdbcConnection driverClass="这里填写driverClass" connectionURL="这里填写数据库链接表达式"
  21. userId="这里填写数据库用户名" password="这里填写数据库密码">
  22. <!--设置为 true 可以获取 tables 信息, 解决生成文件缺少 xxxByPrimaryKey 的问题 -->
  23. <property name="useInformationSchema" value="true"/>
  24. </jdbcConnection>
  25. <!-- 生成模型的包名和位置 -->
  26. <javaModelGenerator targetPackage="模型位置" targetProject="src/main/java">
  27. <property name="enableSubPackages" value="true"/>
  28. <property name="trimStrings" value="true"/>
  29. </javaModelGenerator>
  30. <!-- 生成映射文件的包名和位置 mapp.xml-->
  31. <sqlMapGenerator targetPackage="mybatis.mapper" targetProject="src/main/resources">
  32. <property name="enableSubPackages" value="true"/>
  33. </sqlMapGenerator>
  34. <!-- 生成DAO MAPP.java的包名和位置 -->
  35. <javaClientGenerator type="XMLMAPPER" targetPackage="mapper的位置" targetProject="src/main/java">
  36. <property name="enableSubPackages" value="true"/>
  37. </javaClientGenerator>
  38.  
  39. <!-- 要生成哪些表-->
  40. <table tableName="T_DEMO_INFO" domainObjectName="DemoInfo">
  41. <property name="ignoreQualifiersAtRuntime" value="true"/>
  42. </table>
  43.  
  44. </context>
  45. </generatorConfiguration>

  配置好了以后,点击上一步的插件位置就可以生成文件了,比手动一个个创建愉快得多了,诶嘿,快乐~~~

MyBatis学习(四)代码生成器MyBatis-Generator的更多相关文章

  1. 转:MyBatis学习总结(Mybatis总结精华文章)

    http://www.cnblogs.com/xdp-gacl/tag/MyBatis%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/ 当前标签: MyBatis学习总结   ...

  2. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  3. 【转】MyBatis学习总结(七)——Mybatis缓存

    [转]MyBatis学习总结(七)——Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualC ...

  4. 【转】MyBatis学习总结(一)——MyBatis快速入门

    [转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC ...

  5. Mybatis学习笔记(一) —— mybatis介绍

    一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  6. MyBatis 学习记录5 MyBatis的二级缓存

    主题 之前学习了一下MyBatis的一级缓存,主要涉及到BaseExecutor这个类. 现在准备学习记录下MyBatis二级缓存. 配置二级缓存与初始化发生的事情 首先二级缓存默认是不开启的,需要自 ...

  7. Mybatis学习笔记(八) —— Mybatis整合spring

    一.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ...

  8. Mybatis学习第一天——Mybatis的安装配置以及基本CURD操作

    1.Mybatis下载 Mybatis是开源的持久层框架,能够度jdbc进行简单的封装,但其并不是完全的ORM(Object Relational Mapping,对象关系映射),无法脱离数据库进行适 ...

  9. MyBatis学习笔记一:MyBatis最简单的环境搭建

    MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础 1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做 my ...

  10. (原创)mybatis学习四,利用mybatis自动创建代码

    在使用mybatis的过程中,我们可以直接利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件,然后copy到工程中即可 需要的jar包如下 下载路径如下:下载jar包 其中的g ...

随机推荐

  1. golang目录

    基础 golang安装及vscode编辑器配置 golang基础结构 golang基础数据类型 golang复合数据结构 goalng函数 golang方法 golang接口 golang并发 gol ...

  2. ZK的watch机制

    1.watcher原理框架 由图看出,zk的watcher由客户端,客户端WatchManager,zk服务器组成.整个过程涉及了消息通信及数据存储. zk客户端向zk服务器注册watcher的同时, ...

  3. 方法在class文件中的存在形式MethodInfo

    一个方法对由一个method_info结构所定义.一个class文件中,不会同时出现两个方法同时有相同的名称和描述符 method_info结构如下 参考Field 代码实现 public class ...

  4. 华师2019软件专硕复试机试题最后一题G:找数

    G. 找数 单点时限: 1.0 sec 内存限制: 256 MB 问题描述 输入一个整数 n( 2≤n≤10 ) ,你需要找到一些 n 位数(允许有前置 0 ,见样例),这些 n 位数均 由 0 ~ ...

  5. 23种设计模式(C++)

    每一种都有对应理解的相关代码示例 → Git原码 一. GOF-23 模式分类 从目的来看 • 创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创 ...

  6. [apue] 一图读懂 unix 文件句柄及文件共享过程

    与文件相关的一些概念 在开始上图之前,先说明几个和 unix 文件密切相关的术语,方便后续讨论使用 文件句柄 / 文件描述符 (file descriptor 或 FD):描述一个打开文件相关属性的类 ...

  7. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  8. 【Android】AndroidStudio(Eclipse)如何使用天天模拟器进行调试apk应用。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 大家都知道,我们这些Android开 ...

  9. SQL Builder 1.04

    解析效果: select id,code,name,utime,src,ctime from stock where id<20 and code like '%6%' order by id, ...

  10. 在MyBatis中采用模糊查询变量的引用标志应当是$而不是#

    具体如下例: @Select("select count(*) from hy_stock where name like '%${keyword}%' or code like '%${k ...