前言:做过几个项目之后深感代码生成器的便捷,有了它我们可以少写许多重复的、基础的代码,如基本的增删改查的代码,我们可以交给代码生成器生成,而我们只需要专注于业务逻辑上的代码即可。

MyBatis Generator

MyBatis官方提供了代码生成器,MyBatis Generator,我们可以去他们的MyBatis Generator官方文档查看它的详细使用,这里简单记录一下如何使用MyBatis Generator

MyBatis Generator的Github下载地址:https://github.com/mybatis/generator/releases

我们这里使用的是1.4.0版本的

首先我们创建一个Maven项目,导入相应的依赖,其中包括MyBatis Generator的依赖包,如下:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis_generator</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>test</scope></dependency><!--MyBatis Generator的依赖--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.0</version></dependency></dependencies></project>

然后我们创建Generator的配置文件,如下图:

generatorConfig.xml的内容

<?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><!-- targetRuntime="MyBatis3Simple":生成简单版的CRUDMyBatis3:豪华版--><context id="DB2Tables" targetRuntime="MyBatis3"><!-- jdbcConnection:指定如何连接到目标数据库 --><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/study?allowMultiQueries=true"userId="root"password="123456"></jdbcConnection><!--  --><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- javaModelGenerator:指定javaBean的生成策略 targetPackage="test.model":目标包名targetProject="\MBGTestProject\src":目标工程--><javaModelGenerator targetPackage="com.gcl.entity"targetProject=".\src\main\java"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><!-- sqlMapGenerator:sql映射生成策略: --><sqlMapGenerator targetPackage="com.gcl.dao"targetProject=".\src\main\resources"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!-- javaClientGenerator:指定mapper接口所在的位置 --><javaClientGenerator type="XMLMAPPER" targetPackage="com.gcl.dao"targetProject=".\src\main\java"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- 指定要逆向分析哪些表:根据表要创建javaBean --><table tableName="user" domainObjectName="User"/><table tableName="account" domainObjectName="Account"/></context>
</generatorConfiguration>

官方文档中其实也给了一个Generator配置的模板,详细配置可以去官方文档查看,我们这里只给了最基本的配置Generator配置

然后我们运行Generator,官方文档给出了几种运行方式,如下图:

我们这里选择使用配置文件运行的方式

使用配置文件运行的方式需要写几段Java代码来运行,官方文档给出了示例,如下:

测试代码:

import java.io.File;
import java.util.ArrayList;
import java.util.List;/*** @author 小关同学* @create 2021/8/25*/
@Slf4j
public class MyBatisGeneratorTest {@Testpublic void testGenerator()throws Exception{List<String> warnings = new ArrayList<>();boolean overwrite = true;File configFile = new File("D:\\Mybatis学习\\MyBatis代码生成器\\mybatis_generator\\src\\main\\resources\\generatorConfig.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);myBatisGenerator.generate(null);}
}

运行结果:

这就帮我们把代码创建出来了

最后,我们只需要再自己再配置一下MyBatis的配置文件就可以了。

MyBatis复习笔记5:MyBatis代码生成器相关推荐

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

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

  2. 【最全Mybatis学习笔记(导入mybatis相关jar包)】

    目录 1. 什么是Mybatis 2. 如何引入Mybatis? 3.编写Mybatis工具类 4. 万能Map 5. 模糊查询怎么写? 6. 作用域(Scope)和生命周期SqlSessionFac ...

  3. Mybatis复习笔记:1

    关于模糊查找 模糊查找其实有两种基本操作(之前学的时候看的不太仔细,漏了-) 第一种 <select id="findByType" parameterType=" ...

  4. MyBatis复习笔记6:MyBatis缓存机制

    MyBatis缓存机制 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.缓存可以极大的提升查询效率. MyBatis系统中默认定义了两级缓存. 一级缓存和二级缓存. 默认情 ...

  5. Mybatis复习笔记:4

    关于Mybatis中的一些注意点 一.关于实体类属性 当我们封装的时候我们一般要求实体类中和数据库的列名保持一致. 如果不一致将会导致查询结果为空. 解决属性名和数据库中表的字段名不一致的方法 1.在 ...

  6. Mybatis复习笔记3:映射文件详解

    映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...

  7. MyBatis复习笔记2:配置文件详解

    配置文件详解 属性(properties) MyBatis可以使用 properties 来引入外部 properties 配置文件的内容 resource:引入类路径下的资源 url:引入网络路径或 ...

  8. mybatis 复习笔记02

    1. 一对一查询: 1). 实体类: 2). 定义resultMap <!-- 订单查询关联用户的resultMap将整个查询的结果映射到cn.itcast.mybatis.po.Orders中 ...

  9. mybatis 复习笔记03

    参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...

最新文章

  1. 决策树分类Decision tree classifier
  2. VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)
  3. 快意报表存储过程标准写法
  4. 我想和你一起去这样一个地方
  5. 12无法使用otg_12个冷知识:或许只能看看而无法使用,但却真实存在着
  6. HTML5游戏引擎Egret发布2.0版 开发工具亦获更新
  7. Laravel 生成二维码的方法
  8. python pyquery倒数第二个节点之前的节点_Python中PyQuery库的使用总结
  9. 27岁后月薪低于8K,会被淘汰吗?
  10. 一文读懂Netty的核心构成块
  11. Mplay 常用命令及功能简介
  12. spring boot实现图片裁剪
  13. 51单片机学习笔记(8)——74HC573锁存器
  14. turtle实例2 奥运五环
  15. MATLAB实现支持向量机SVM分类简介
  16. 关于抢红包的_关于抢红包的作文
  17. 探索新时代的进货渠道突破口,快速脱颖而出
  18. Linux terminal 终端快捷键汇总
  19. 使用Docker+Jenkin自动化流水线
  20. 我对遥感影像分类的理解(1)

热门文章

  1. 【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改
  2. VS2019生成C++开发的exe文件可以在无VS的PC上运行的方法
  3. 在Ubuntu 16.04.4 LTS上调研开源QUIC项目ngtcp2
  4. 虚幻引擎虚拟现实开发基础学习教程
  5. NB-IOT: Anchor Carrier 锚点载波
  6. 帕斯卡三角形(Pascal's triangle)
  7. a-awk外部变量传入,内部变量传出,同时过滤空格及其他字符
  8. Aveva Marine C# 二次开发入门001
  9. 编码小记(未整理-持续更新)
  10. 使用μJava进行变异体测试