MyBatis复习笔记5:MyBatis代码生成器
前言:做过几个项目之后深感代码生成器的便捷,有了它我们可以少写许多重复的、基础的代码,如基本的增删改查的代码,我们可以交给代码生成器生成,而我们只需要专注于业务逻辑上的代码即可。
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代码生成器相关推荐
- Mybatis学习笔记(一) —— mybatis介绍
一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- 【最全Mybatis学习笔记(导入mybatis相关jar包)】
目录 1. 什么是Mybatis 2. 如何引入Mybatis? 3.编写Mybatis工具类 4. 万能Map 5. 模糊查询怎么写? 6. 作用域(Scope)和生命周期SqlSessionFac ...
- Mybatis复习笔记:1
关于模糊查找 模糊查找其实有两种基本操作(之前学的时候看的不太仔细,漏了-) 第一种 <select id="findByType" parameterType=" ...
- MyBatis复习笔记6:MyBatis缓存机制
MyBatis缓存机制 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.缓存可以极大的提升查询效率. MyBatis系统中默认定义了两级缓存. 一级缓存和二级缓存. 默认情 ...
- Mybatis复习笔记:4
关于Mybatis中的一些注意点 一.关于实体类属性 当我们封装的时候我们一般要求实体类中和数据库的列名保持一致. 如果不一致将会导致查询结果为空. 解决属性名和数据库中表的字段名不一致的方法 1.在 ...
- Mybatis复习笔记3:映射文件详解
映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...
- MyBatis复习笔记2:配置文件详解
配置文件详解 属性(properties) MyBatis可以使用 properties 来引入外部 properties 配置文件的内容 resource:引入类路径下的资源 url:引入网络路径或 ...
- mybatis 复习笔记02
1. 一对一查询: 1). 实体类: 2). 定义resultMap <!-- 订单查询关联用户的resultMap将整个查询的结果映射到cn.itcast.mybatis.po.Orders中 ...
- mybatis 复习笔记03
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...
最新文章
- 决策树分类Decision tree classifier
- VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)
- 快意报表存储过程标准写法
- 我想和你一起去这样一个地方
- 12无法使用otg_12个冷知识:或许只能看看而无法使用,但却真实存在着
- HTML5游戏引擎Egret发布2.0版 开发工具亦获更新
- Laravel 生成二维码的方法
- python pyquery倒数第二个节点之前的节点_Python中PyQuery库的使用总结
- 27岁后月薪低于8K,会被淘汰吗?
- 一文读懂Netty的核心构成块
- Mplay 常用命令及功能简介
- spring boot实现图片裁剪
- 51单片机学习笔记(8)——74HC573锁存器
- turtle实例2 奥运五环
- MATLAB实现支持向量机SVM分类简介
- 关于抢红包的_关于抢红包的作文
- 探索新时代的进货渠道突破口,快速脱颖而出
- Linux terminal 终端快捷键汇总
- 使用Docker+Jenkin自动化流水线
- 我对遥感影像分类的理解(1)
热门文章
- 【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改
- VS2019生成C++开发的exe文件可以在无VS的PC上运行的方法
- 在Ubuntu 16.04.4 LTS上调研开源QUIC项目ngtcp2
- 虚幻引擎虚拟现实开发基础学习教程
- NB-IOT: Anchor Carrier 锚点载波
- 帕斯卡三角形(Pascal's triangle)
- a-awk外部变量传入,内部变量传出,同时过滤空格及其他字符
- Aveva Marine C# 二次开发入门001
- 编码小记(未整理-持续更新)
- 使用μJava进行变异体测试