我的使用时通过配置文件的方式使用的,这种方式看起来直观,但是不灵活,而且不能生成service和controller层代码,想要生成service和controller层还是写代码自定义模板生成。

mybatis-generator的官方地址:MyBatis Generator Core – Introduction to MyBatis Generator

具体的使用方式,常用标签标注出来了,具体的查阅文档

使用步骤:

pom中添加插件,设置数据库驱动

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!--mybatis的代码生成器插件--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.0</version><executions><execution><id>Generate MyBatis Artifacts</id><goals><goal>generate</goal></goals></execution></executions><configuration><!-- 输出详细信息 --><verbose>true</verbose><!-- 覆盖生成文件 --><overwrite>true</overwrite><!-- 定义配置文件 --><configurationFile>${basedir}/src/main/resources/generator-configuration.xml</configurationFile></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope><version>8.0.22</version></dependency></dependencies></plugin></plugins></build>

编写代码生成器的具体配置如下:

generator-configuration.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标签:最重要的配置项 对应编码类org.mybatis.generator.config.Contextid:Context示例的唯一ID,用于输出错误信息时候作为唯一标记targetRuntime:代码的生成模式MyBatis3   提供基本的基于动态SQL的CRUD方法和XXXByExample方法,会生成XML映射文件MyBatis3Simple  提供基本的基于动态SQL的CRUD方法,会生成XML映射文件MyBatis3DynamicSql 默认值,兼容JDK8+和MyBatis 3.4.2+,不会生成XML映射文件,忽略<sqlMapGenerator>的配置项,也就是Mapper全部注解化,依赖于MyBatis Dynamic SQL类库defaultModelType:实体的生成行为,默认conditional,targetRuntime为MyBatis3DynamicSql或者MyBatis3Kotlin时忽略此配置--><context id="mysqlGenerator" targetRuntime="MyBatis3"><!--零个或者多个property,对应属性如下,一般用不到<property name="" value=""/>autoDelimitKeywords 是否使用分隔符号括住数据库关键字    false   例如MySQL中会使用反引号括住关键字beginningDelimiter   分隔符号的开始符号   "endingDelimiter   分隔符号的结束号    "javaFileEncoding  文件的编码   系统默认值   来源于java.nio.charset.CharsetjavaFormatter    类名和文件格式化器   DefaultJavaFormatter    见JavaFormatter和DefaultJavaFormattertargetJava8  是否JDK8和启动其特性    truekotlinFileEncoding  Kotlin文件编码  系统默认值   来源于java.nio.charset.CharsetkotlinFormatter  Kotlin类名和文件格式化器 DefaultKotlinFormatter  见KotlinFormatter和DefaultKotlinFormatterxmlFormatter XML文件格式化器   DefaultXmlFormatter 见XmlFormatter和DefaultXmlFormatter--><!--plugin:用于引入一些插件对代码生成的一些特性进行扩展例如:引入org.mybatis.generator.plugins.SerializablePlugin插件会让生成的实体类自动实现java.io.Serializable接口并且添加serialVersionUID属性。可选插件地址:http://mybatis.org/generator/reference/plugins.html--><plugin type="org.mybatis.generator.plugins.SerializablePlugin"/><!--commentGenerator:标签是可选的,用于控制生成的实体的注释内容有四个属性:suppressAllComments 是否生成注释  falsesuppressDate   是否在注释中添加生成的时间戳  falsedateFormat 配合suppressDate使用,指定输出时间戳的格式  java.util.Date#toString()addRemarkComments  是否输出表和列的Comment信息   false--><commentGenerator><property name="suppressAllComments" value="true" /></commentGenerator><!-- 数据库链接URL、用户名、密码 对应编码类JDBCConnectionConfiguration--><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/springcloud?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"userId="root"password="123456"/><!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa"/>--><!--javaTypeResolver:用于解析和计算数据库列类型和Java类型的映射关系,可以不配置有两个属性:forceBigDecimals  是否强制把所有的数字类型强制使用java.math.BigDecimal类型表示    falseuseJSR310Types 是否支持JSR310,主要是JSR310的新日期类型   false数据库(JDBC)类型          Java类型DATE              java.time.LocalDateTIME             java.time.LocalTimeTIMESTAMP            java.time.LocalDateTimeTIME_WITH_TIMEZONE   java.time.OffsetTimeTIMESTAMP_WITH_TIMEZONE java.time.OffsetDateTime--><!--<javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver>--><!--javaModelGenerator:主要用于控制实体(Model)类的代码生成行为targetPackage:生成的实体类的包名targetProject:生成的实体类文件相对于项目(根目录)的位置可配置属性:constructorBased:是否生成一个带有所有字段属性的构造函数,默认false,MyBatis3Kotlin模式下忽略此属性配置enableSubPackages:是否允许通过Schema生成子包,默认false,如果为true,例如包名为club.throwable,如果Schema为xyz,那么实体类文件最终会生成在club.throwable.xyz目录,不存在创建exampleTargetPackage:生成的伴随实体类的Example类的包名exampleTargetProject:生成的伴随实体类的Example类文件相对于项目(根目录)的位置immutable:是否不可变  false,如果为true,则不会生成Setter方法,所有字段都使用final修饰,提供一个带有所有字段属性的构造函数rootClass:为生成的实体类添加父类,通过value指定父类的全类名即可trimStrings:Setter方法是否对字符串类型进行一次trim操作,默认false--><javaModelGenerator targetPackage="com.wangzewei.mybatisgenerator.entity" targetProject="src/main/java"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /><property name="constructorBased" value="true" /></javaModelGenerator><!--sqlMapGenerator:主要用于控制XML映射文件的代码生成行为targetPackage    生成的XML映射文件的包名targetProject  生成的XML映射文件相对于项目(根目录)的位置如下配置,相当于在resources目录下创建mapper目录存放生成的*.xml文件enableSubPackages:创建子包--><sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!--javaClientGenerator:主要用于控制Mapper接口的代码生成行为三个属性:type:Mapper接口生成策略ANNOTATEDMAPPER:Mapper接口生成的时候依赖于注解和SqlProviders(也就是纯注解实现),不会生成XML映射文件。XMLMAPPER:Mapper接口生成接口方法,对应的实现代码生成在XML映射文件中(也就是纯映射文件实现)。MIXEDMAPPER:Mapper接口生成的时候复杂的方法实现生成在XML映射文件中,而简单的实现通过注解和SqlProviders实现(也就是注解和映射文件混合实现)targetPackage:生成的Mapper接口的包名targetProject:生成的Mapper接口文件相对于项目(根目录)的位置  Y   例如src/main/java注意:<context>标签的targetRuntime属性指定为MyBatis3Simple的时候,type只能选用ANNOTATEDMAPPER或者XMLMAPPER。<context>标签的targetRuntime属性指定为MyBatis3的时候,type可以选用ANNOTATEDMAPPER、XMLMAPPER或者MIXEDMAPPER。property:enableSubPackages:是否允许通过Schema生成子包,默认false,自动创建不存在的包useLegacyBuilder:是否通过SQL Builder生成动态SQL,默认falserootInterface  为生成的Mapper接口添加父接口--><javaClientGenerator type="XMLMAPPER"targetPackage="com.wangzewei.mybatisgenerator.mapper"targetProject="src/main/java"><property name="enableSubPackages" value="true" /><property name="useLegacyBuilder" value="true" /></javaClientGenerator><!--table:要生成的目标表常用属性:tableName:数据库表名称alias:表别名,如果指定了此值,则查询列的时候结果格式为【别名+列名】domainObjectName:表对应的实体类名称,可以通过.指定包路径,如果指定了bar.User,则包名为bar,实体类名称为UsermapperName:表对应的Mapper接口类名称,可以通过.指定包路径,如果指定了bar.UserMapper,则包名为bar,Mapper接口类名称为UserMapperdelimitAllColumns:是否所有的列都添加分隔符,默认值为false,如果设置为true,所有列名会添加起始和结束分隔符还有一些默认属性,生成方法true的不配置了表的propertyconstructorBased,是否为实体类生成一个带有所有字段的构造函数,默认falseignoreQualifiersAtRuntime:是否在运行时忽略别名useActualColumnNames:是否使用列名作为实体类的属性名--><table tableName="sys_user"enableCountByExample="false"enableUpdateByExample="false"enableDeleteByExample="false"enableSelectByExample="false"selectByExampleQueryId="false" /><!-- <table tableName="course_info" domainObjectName="CourseInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /><table tableName="course_user_info" domainObjectName="CourseUserInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> --></context>
</generatorConfiguration>

运行就是通过maven,

右击运行,即可生成

示例:

注意事项:定义mybatis-generator配置文件时,需要严格按照如下顺序定义标签,不然context报红,编译也不会通过

property*>plugin*>commentGenerator>(connectionFactory|jdbcConnection)>javaTypeResolver>javaModelGenerator>sqlMapGenerator>javaClientGenerator>table

【mybatis代码生成器】mybatis-generator的xml方式使用相关推荐

  1. 5.6 Mybatis代码生成器Mybatis Generator (MBG)实战详解

    文章目录 前言 一.Mybatis Generator简介 二.Maven插件运行方式 三.生成配置 generatorConfig.xml MyBatis3Simple风格 MyBatis3风格 M ...

  2. 怎么运行Mybatis代码生成器MGB

    方式一:作为 Maven Plugin  mvn mybatis-generator:generate 使用场景: 对逆向工程定制较多,项目工程结构比较单一的情况 POM文件下需要以下插件 <b ...

  3. SpringBoot的MyBatis generator 注解方式和xml方式 (四)

    两种形式: XML方式 type="XMLMAPPER" 注解方式 type="ANNOTATEDMAPPER" 1.1 pom.xml里添加maven插件 & ...

  4. MyBatis-02 MyBatis XML方式概述及配置步骤

    概述 一个简单的权限控制需求 创建数据库表 创建实体类 XML方式概述及步骤 1. 首先在src/main/resources下com.artisan.mybatis.xml.mapper目录下创建5 ...

  5. MyBatis-04 MyBatis XML方式之insert元素

    insert概述 简单的insert用法 1. UserMapper中添加接口方法 2. UserMapper.xml 添加节点 3. 编写单元测试 使用JDCB方式返回主键自增的值 1.UserMa ...

  6. MyBatis-03 MyBatis XML方式之select元素

    概述 select用法 根据用户id查询用户信息 1.UserMapper接口中添加接口方法 2. UserMapper.xml中配置resultMap和select元素 查询全部的SysUser 添 ...

  7. spring和mybatis整合:使用xml方式

    文章目录 spring和mybatis整合:使用xml方式 1. 创建数据库 2. 创建工程,pom.xml文件如下: 3. 依赖下载地址如下: 4. 配置mybatis的全局配置,在resource ...

  8. Mybatis之xml方式(一)

    文章目录 环境搭建 XML方式 mybatis-config 创建实体类 ***Mapper.xml 测试代码 读入mybatis-config 进行一次==curd==操作 错误信息及处理方法: 环 ...

  9. Mybatis使用xml方式配置

    官网地址:https://mybatis.org/mybatis-3/zh/getting-started.html 使用案例: 我们创建一个数据库叫做mybatis,在其下创建userinfo数据表 ...

最新文章

  1. 和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大
  2. 第一章1.1 回顾CMOS的一些知识
  3. 动画性能优化-requestAnimationFrame、GPU等
  4. python学习笔记——类
  5. 【整体二分】区间第k小(金牌导航 整体二分-1)
  6. 深入解析:MySQL对分布式事务 XA Transactions 的支持
  7. android设置高德的3d,高德地图3D版的使用方法
  8. windows下忘记mysql 密码的解决方法
  9. MapXtreme2005开发的经典问题
  10. 统计SQL语句和存储过程
  11. WordPress后台友情链接的追加
  12. 无极浏览器(教学专用浏览器)官方版 v5.0.0.15
  13. inode客户端连接成功上不了网_iNode的客户端部分常见问题
  14. 项目管理之道——软件能力成熟度模型五大等级详解!
  15. 基于asp.net170CRM客户关系管理系统
  16. 数字图像处理与Python实现笔记之图像小波变换与多分辨率
  17. CSS中的代表的什么
  18. 【异界双子-twin souls-】Tech Support
  19. 三级分销软件开发技术分销系统模式
  20. 微机原理与接口技术 学习笔记(五) 8255(可编程并行接口芯片) 与 8253(可编程定时/计数器)

热门文章

  1. Corda技术理解之为什么有Corda?
  2. 【模型】Model predictive control (MPC)控制策略简介
  3. Verilog——74HC151八选一数据选择器并扩展为16选1数据选择器
  4. 一种可训练的目标检测系统
  5. 网站统计中的数据收集原理及实现(openResty篇)
  6. 暗夜精灵6-ubuntu18.04-显卡驱动
  7. 【牛客网-华为机试题目录】持续更新中
  8. Python:Opencv开发手册
  9. 自己动手做网络爬虫系列——1
  10. Visual Studio开发MFC项目OCX控件添加使用控件方法