基于MyBatis提供了很多的第三方插件,这些插件通常完成数据库操作方法的封装(GeneralDAO)、数据库逆向工程工作(根据数据库表生成实体类、生成映射文件)
- MyBatis-plus
- tkMapper
tkMapper就是一个MyBatis插件,是在MyBatis的基础上提供了很多工具,让开发变得简单,提高开发效率。
- 提供了针对单表通用的数据库操作方法
- 逆向工程(根据数据表生成实体类、dao接口、映射文件)
整合tkMapper:
添加tkMapper依赖:
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
修改启动类的@MaperScan
注解的包为tk.mybatis.spring.annotation.MapperScan
:
package com.krian.fengmail; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @MapperScan("com.krian.fengmail.dao") public class ApiApplication { public static void main(String[] args) { SpringApplication.run(ApiApplication.class, args); } }
tkMapper逆向工程(MyBatis):
根创建好的数据库表,生成实体类,DAO接口,映射文件!
添加逆向工程依赖:
这个依赖是一个mybatis的maven插件:
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.4</version> </dependency> </dependencies> </plugin>
2.在resource/generator目录下创建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> <!-- 引入数据库连接配置 --> <!-- <properties resource="jdbc.properties"/>--> <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <property name="beginningDelimiter" value="`"/> <property name="endingDelimiter" value="`"/> <!-- 配置 GeneralDAO --> <plugin type="tk.mybatis.mapper.generator.MapperPlugin"> <property name="mappers" value="com.qfedu.tkmapperdemo.general.GeneralDAO"/> </plugin> <!-- 配置数据库连接 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shopping" userId="root" password="131452"> <!--MySQL底层问题,不加该配置会导致将数据库中所有数据库中的所有表都生成对应的实体类、DAO、Mapper文件--> <property name="nullCatalogMeansCurrent" value="true"/> </jdbcConnection> <!-- 配置实体类存放路径 --> <javaModelGenerator targetPackage="com.krian.fengmail.entity" targetProject="src/main/java"/> <!-- 配置 XML 存放路径 --> <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/> <!-- 配置 DAO 存放路径 --> <javaClientGenerator targetPackage="com.krian.fengmail.dao" targetProject="src/main/java" type="XMLMAPPER"/> <!-- 配置需要指定生成的数据库和表,% 代表所有表 --> <table tableName="%"> <!-- mysql 配置 --> <!-- <generatedKey column="id" sqlStatement="Mysql" identity="true"/>--> </table> <!-- <table tableName="tb_roles">--> <!-- <!– mysql 配置 –>--> <!-- <generatedKey column="roleid" sqlStatement="Mysql" identity="true"/>--> <!-- </table>--> <!-- <table tableName="tb_permissions">--> <!-- <!– mysql 配置 –>--> <!-- <generatedKey column="perid" sqlStatement="Mysql" identity="true"/>--> <!-- </table>--> </context> </generatorConfiguration>
3.设置配置文件到逆向工程的maven插件:
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.4</version> </dependency> </dependencies> </plugin>