概述
MyBatis Generator介绍
MyBatis Generator,缩写MBG,是一个Mybatis和iBatis的代码生成器。它支持Mybatis的所有版本,支持iBatis 2.2.0以后的版本。通过MyBatis Generator可以根据数据库表生成相应的实体、sql映射文件、Dao等,能应付简单的CRUD(Create, Retrieve, Update, Delete),对于连接查询或存储过程等还是要手动编写sql和对象。
MyBatis Generator将生成以下内容:
与表结构匹配的Java POJO。这可能包括:
- 一个关于表主键的类(如果表有主键)
- 一个关于表非主键字段的类(BLOB字段除外)
- 一个包含表BLOB字段的类(如果表有BLOB字段)
- 一个支持动态查询、修改和删除的类
MyBatis或iBATIS兼容的SQL映射XML文件。MBG为配置中指定的每个表的简单CRUD函数生成SQL,生成的SQL语句包括:
- 插入
- 通过主键更新
- 通过动态where子句更新
- 通过主键删除
- 通过动态where子句删除
- 通过主键查询
- 通过动态where子句查询
- 通过动态where子句查询条数
注意:上面的内容并不一定全部生成,比如:如果表没有主键,则不会生成通过主键删除等sql。
适合使用上述对象的Java类,Java类的生成是可选的。MBG将为MyBatis 3.X生成以下类型的Java类:
- 与MyBatis 3.x映射器基础结构配合使用的映射器接口
MBG将为iBATIS 2.x生成以下类型的Java类:
- 符合Spring框架的DAO
- 只使用iBATIS SQL映射API的DAO。这些DAO可以通过两种方式生成:通过构造函数或setter注入来提供SqlMapClient。
- 符合iBATIS DAO框架的DAO(这是iBATIS的一个可选部分,此框架已被弃用,所以建议改用Spring框架)
在迭代开发过程中使用MyBatis Generator的注意事项:
- 如果存在与新生成的XML文件具有相同名称的现有文件,MBG将自动合并XML文件,合并时,MBG不会覆盖你在XML文件中添加的任何内容。你可以重复生成而不用担心丢失XML文件中你添加的内容,MBG只替换通过MBG生成的任何XML元素。
- MBG不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件(文件名后加1、2、3等序号)。如果重复生成可以选择自动覆盖替换或手动合并更改。
创建项目
1.引入MyBatis Generator的maven插件
在pom.xml里添加以下内容:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<!-- 添加一个mysql的依赖,防止等会找不到driverClass -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
<!-- mybatisGenerator 的配置 -->
<configuration>
<!-- generator 工具配置文件的位置 -->
<configurationFile>src/main/resources/mybatis-generator/generator-config.xml</configurationFile>
<!-- 是否覆盖 -->
<!-- 此处要特别注意,如果不加这个设置会导致每次运行都会在原目录再次创建-->
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
2、数据源配置
## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/db_ssm
spring.datasource.username=root
spring.datasource.password=xp3338983
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、
MyBatis Generator配置文件
generator-Config.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>
<!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->
<!-- 引入配置文件 -->
<properties resource="application.properties"/>
<context id="MySQLTables" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 公共设置 -->
<commentGenerator>
<!-- 是否取消自动生成时的注释 -->
<property name="suppressAllComments" value="false"/>
<!-- 是否取消在注释中加上时间 -->
<property name="suppressDate" value="false"/>
</commentGenerator>
<!-- 链接数据库的配置 -->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}" connectionURL="${spring.datasource.url}" userId="${spring.datasource.username}" password="${spring.datasource.password}"/>
<!-- 关于生成实体类的设置 -->
<!-- targetPackage 生成代码的目标目录 -->
<!-- targetProject 目录所属位置 -->
<javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
<!-- 在targetPackge的基础上根据schema再生成一层package 默认flase -->
<property name="enableSubPackages" value="true"/>
<!-- 是否在get方法中 对String类型的字段做空的判断 -->
<property name="trimStrings" value="true"/>
<!-- 是否生成一个包含所有字段的构造器 -->
<property name="constructorBased" value="false"/>
<!-- 是否创建一个不可变类-->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--关于生成映射文件的设置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<!--同上-->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--关于生成dao层的设置-->
<javaClientGenerator type="mapper" targetPackage="com.example.demo.dao" targetProject="src/main/java">
<!--同上-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--需要生成的代码对应的表名-->
<table tableName="t_user"></table>
</context>
</generatorConfiguration>
4、创建mybatis-generator
命令快捷方式
该步骤是为了方便在后续直接通过运行命令方式来操作生成mapper
、pojo
等,就像运行application
一样。
选中Edit Configurations
,打开如下窗口:
如果此处没有Maven
条目,需要点击右上角加号
,选中Maven
:
在右侧Command line
中输入命令mybatis-generator:generate -e
,并设置其Name
,如下:
此时,设置完成,点击OK
即可。
5、执行generate
,生成dao
及mapper
执行之前设置的generate
命令,运行结果如下:
然后查看项目,发现mapper
、dao
等已经生成好,并且生成了相关CRUD方法,如图:
生成代码就不在此罗列了,可自行尝试。
最后
以上就是精明小松鼠为你收集整理的Spring Boot(四十二):Springboot整合MyBatis Generator的全部内容,希望文章能够帮你解决Spring Boot(四十二):Springboot整合MyBatis Generator所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复