快速生成mybatis对应的数据库表实体类、mapper.xml文件

2022-08-29 08:17:20

在项目中通过mybatis与MySQL建立起连接往往需要书写大量重复的CURD的xml格式文件,这一点就令人非常头疼。所以能不能为这些相同格式的模板文件建立一个自动生成的模板规则呢。

mybatis-generator就是专门为了解决这个问题而出现的。
接下来我们围绕着以下三点进行展开:

  • mybatis-generator是什么
  • mybatis-generator怎么用
  • mybatis-generator的使用总结

一、mybatis-generator是什么

MyBatis Generator是一个可以用来生成Mybatis dao,entity,Mapper文件的一个工具,在项目的过程中可以省去很多重复的工作,我们只要在MyBatis Generator的配置文件中配置好要生成的表名与包名,然后运行一条命令就会生成对应的文件。

二、mybatis-generator怎么用

首先我们需要在resource目录下新建一个generatorConfig.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><!--mysql 连接数据库jar 这里选择自己本地位置--><classPathEntrylocation="C:\Users\a5974\.m2\repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/><contextid="testTables"targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释 true:是 : false:否 --><propertyname="suppressAllComments"value="true"/></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/generotor"userId="root"password="root"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
           NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><propertyname="forceBigDecimals"value="false"/></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGeneratortargetPackage="com.huayun.safety.domain"targetProject="src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><propertyname="enableSubPackages"value="false"/><!-- 从数据库返回的值被清理前后的空格 --><propertyname="trimStrings"value="true"/></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置
           如果maven工程只是单独的一个工程,targetProject="src/main/java"
           若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
           targetProject="ecps-manager-mapper",下同--><sqlMapGeneratortargetPackage="com.huayun.safety.repository"targetProject="src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><propertyname="enableSubPackages"value="false"/></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGeneratortype="XMLMAPPER"targetPackage="com.huayun.safety.repository"targetProject="src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><propertyname="enableSubPackages"value="false"/></javaClientGenerator><!-- 指定数据库表 --><tableschema=""tableName="c"></table></context></generatorConfiguration>

上方配置中的classPathEntry需要指定mysql的连接jar包本地目录,即使你的工程是maven工程也要指定好本地对应的mysql连接jar包,可以到maven仓库中查找。而jdbcConnection的连接信息修改成读者的连接信息,table节点中的tableName属性对应数据库中的表名,可以写多个table节点,并且targetPackage需要修改成读者对应的工程目录即可,如果是第一次使用mybatis-generator需要做好与手动书写的文件分开的工作,以免出现混乱的情况。
在pom文件中的plugins节点中,加入以下内容:

<!--为了测试mybatis逆向工程而新增的pom内容--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><!--配置文件的位置--><configurationFile>src/main/resources/generatorConfig.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.2</version></dependency></dependencies></plugin>

等待maven加载好pom文件之后,在IDEA的右侧就能看到相应的generator插件工具
在这里插入图片描述
双击之后,就能够在配置文件中配置的对应目录下看到实体类、接口mapper类以及mapper.xml文件了。

三、mybatis-generator的使用总结

自动生成的mybatis类文件以及xml文件确实极大的节省了我们的开发时间,但是通过查阅自动生成的文件内容,发现可扩展性并不高,而且自动生成的类名文件也不够友好。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一句话个人总结就是,可以参考mybatis-generator生成的文件,但是最好不要在生产环境中直接使用。例如自动生成的resultMap片段我们就能够直接拿来使用,而下方的CURD格式块最好还是要改写一下,否则容易对后期的代码维护造成困扰。


参考资料:
IDEA中使用mybatis-generator自动生成mapper和pojo文件

  • 作者:Vainycos
  • 原文链接:https://blog.csdn.net/imVainiycos/article/details/89452713
    更新时间:2022-08-29 08:17:20