你还在手写 CRUD?试试 MybatisGenerator,再也不用加班了!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 你还在手写 CRUD?试试 MybatisGenerator,再也不用加班了!

在使用 mybatis 过程中, 当手写 JavaBean和XML 写的越来越多的时候, 就越来越同意出错。这种重复性的工作, 我们当然不希望做那么多。


还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。


通过简单的配置, 我们就可以生成各种类型的实体类, Mapper接口, MapperXML文件, Example对象等。 通过这些生成的文件, 我们就可以方便的进行单表进行增删改查的操作。


以下的工具使用的都是 IDEA


1、创建代码生成器

1.1 创建Maven项目

1.1.1 菜单上选择新建项目


File | New | Project


1.1.2 选择左侧的Maven

image.png由于我们只是创建一个普通的项目, 此处点击 Next即可。


1.1.3 输入GroupId和ArtifactId


在我的项目中,


GroupId 填 com.homejim.mybatis


ArtifactId 填 mybatis-generator


点击 Next。


1.1.4 Finish


通过以上步骤, 一个普通的Maven项目就创建好了。


1.2 配置 generator.xml

其实名字无所谓, 只要跟下面的 pom.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>
    <!-- 本地数据库驱动程序jar包的全路径 -->
    <classPathEntry location="C:\Users\\Administrator\\.m2\repository\\mysql\\mysql-connector-java\\8.0.12\\mysql-connector-java-8.0.12.jar"/>
    <context id="context" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!-- 数据库的相关配置 -->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mybatis"
                userId="root"
                password="jim777"/>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 实体类生成的位置 -->
        <javaModelGenerator
                targetPackage="com.homejim.mybatis.entity"
                targetProject=".\src\main\java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- *Mapper.xml 文件的位置  sqlMapGenerator-->
        <sqlMapGenerator
                targetPackage="mybatis/mapper"
                targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- Mapper 接口文件的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.homejim.mybatis.mapper"
                             targetProject=".\src\main\java">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- 相关表的配置 -->
        <table tableName="blog" />
    </context>
</generatorConfiguration>

需要改一些内容:


本地数据库驱动程序jar包的全路径(必须要改)。

数据库的相关配置(必须要改)

相关表的配置(必须要改)

实体类生成存放的位置。

MapperXML 生成文件存放的位置。

Mapper 接口存放的位置。

如果不知道怎么改, 请看后面的配置详解。


1.3 配置 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>com.homejim.mybatis</groupId>
    <artifactId>mybatis-generator</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--在原基础上添加 这些就好了-->
    <build>
        <finalName>mybatis-generator</finalName>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                   <!--此处需要注意, 文件与上面的文件匹配-->
                   <configurationFile>src/main/resources/generator.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <!--到此结束-->
</project>

需要注意的是 configurationFile 中的文件指的是 generator.xml。 因此路径写的是该文件的相对路径, 名称也跟该文件相同。


到此, mybatis-generator 就可以使用啦。


1.4 使用及测试

1.4.1 打开 Maven Projects 视图


在 IDEA 上, 打开:


View | Tools | Windwos | Maven Projectsimage.png1.4.2 Maven Projects 中双击 mybatis-generator


在右侧此时可以看到 Maven Projects 了。找到 mybatis-generator 插件。


mybatis-generator | Plugins | mybatis-generator | mybatis-generator

image.pngimage.png2、XML 配置详解

仅仅是上面那么简单的使用还不够爽。 那么我们就可以通过更改 generator.xml 配置文件的方式进行生成的配置。


2.1 优先

推荐查看官方的文档。


2.2 官网没有的

2.2.1 property 标签


该标签在官网中只是说用来指定元素的属性, 至于怎么用没有详细的讲解。


2.2.1.1 分隔符相关image.png这些显然都是可以自定义实现的的。

2.2.2 plugins 标签

plugins 标签用来扩展或修改代码生成器生成的代码。

在生成的 XML 中, 是没有 这个标签的。 该标签是配置缓存的。

如果我们想生成这个标签, 那么可以 plugins 中进行配置。image.png还能自定义插件。

这些插件都蛮有用的, 感觉后续可以专门开一篇文章来讲解。

2.2.3 commentGenerator 标签

看名称, 就知道是用来生成注释用的。

默认配置:

<commentGenerator >
    <property name="suppressAllComments" value="false"/>
    <property name="suppressDate" value="false"/>
    <property name="addRemarkComments" value="false"/>
</commentGenerator>

suppressAllComments: 阻止生成注释, 默认值是false。


suppressDate: 阻止生成的注释包含时间戳, 默认为false。


addRemarkComments: 注释中添加数据库的注释, 默认为 false。


还有一个就是我们可以通过 type 属性指定我们自定义的注解实现类, 生成我们自己想要的注解。 自定义的实现类需要实现 org.mybatis.generator.api.CommentGenerator。


最后,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Java 系列面试题和答案,非常齐全。


作者:阿进的写字台

出处:https://www.cnblogs.com/homejim/\ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 近期热文推荐:


1.Java 15 正式发布, 14 个新特性,刷新你的认知!!


2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!


3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。


4.吊打 Tomcat ,Undertow 性能很炸!!


5.《Java开发手册(嵩山版)》最新发布,速速下载!


觉得不错,别忘了随手点赞+转发哦!



image.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
前端开发 关系型数据库 数据库
使用 Flask 连接数据库和用户登录功能进行数据库的CRUD
使用 Flask 连接数据库和用户登录功能进行数据库的CRUD
130 0
|
JavaScript 前端开发 Java
LayUI之CRUD(增删改查功能实现)项目案例
LayUI之CRUD(增删改查功能实现)项目案例
84 0
|
存储 JSON 前端开发
LayUI之CRUD(增删改查)
LayUI之CRUD(增删改查)
122 0
|
存储 前端开发 JavaScript
Layui的CRUD(增删改查)
Layui的CRUD(增删改查)
101 0
|
前端开发 JavaScript API
Layui的CRUD(增删改查)
Layui的CRUD(增删改查)
105 0
|
前端开发 数据管理 数据库
Layui之CRUD(增删改查)
Layui之CRUD(增删改查)
45 0
|
1月前
|
数据可视化 API PHP
学生信息管理系统-可视化-科目管理CRUD代码生成器
学生信息管理系统-可视化-科目管理CRUD代码生成器
34 5
|
2月前
|
前端开发 IDE 数据库连接
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
本文详细介绍了ThinkPHP6中模型层的使用,包括模型属性设置、表映射关系、以及如何在控制层中使用模型层进行CRUD操作。
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
|
3月前
|
API Python
[gin]基于切片实现crud
[gin]基于切片实现crud
|
3月前
|
前端开发 Java 关系型数据库
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
218 0