springboot集成tkmapper及逆向工程

一. 简介

tkMapper就是⼀个MyBatis插件,是在MyBatis的基础上提供了很多⼯具,让开发变得简单,提⾼开发效率。

  • 提供了针对单表通用的数据库操作⽅法
  • 逆向⼯程(根据数据表生成实体类、dao接⼝、映射⽂件)

二. 集成mybatis

因为tkmapper是基于mybatis的一个插件,因此首先要集成mybatis

2.1 引入依赖
		 <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>
        <!-- mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <!--jdbc依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>
2.2 配置yml
spring:
  datasource:
    druid:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/fmmall?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
      username: root
      password: root

mybatis:
  #mapper映射文件路径
  mapper-locations: classpath:mappers/*Mapper.xml
  #实体类扫描路径(用于mapper中的别名)
  type-aliases-package: org.ljh.entity
2.3 加上接口注解扫描
@SpringBootApplication
@MapperScan("org.ljh.mapper")
public class WebApplication {
    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }
}

三. 集成tkmapper

3.1 引入依赖
 		<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

引入依赖后需修改启动类上的@MapperScan的包,将它替换为tkmapper的包

3.2 创建DAO接口

tkMapper已经完成了对单表的通⽤操作的封装,封装在Mapper接⼝和MySqlMapper接⼝;因此如果我们要完
成对单表的操作,只需⾃定义DAO接⼝继承Mapper接⼝和MySqlMapper接⼝

public interface UserDAO extends Mapper<User>, MySqlMapper<User> {
}

四. 逆向工程

4.1 引入依赖

此依赖是⼀个mybatis的maven插件

注意依赖版本号,否则在生成相关类时会报错

	<build>
        <plugins>
            <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>5.1.34</version>
                    </dependency>

                    <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>3.4.4</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
4.2 逆向工程配置文件

在resources/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="org.ljh.general.GeneralDao"/>
        </plugin>

        <!-- 配置数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/fmmall"
                        userId="root" password="root">
        </jdbcConnection>

        <!-- 配置实体类存放路径 -->
        <javaModelGenerator targetPackage="org.ljh.entity" targetProject="src/main/java"/>

        <!-- 配置 XML 存放路径 -->
        <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/>

        <!-- 配置 DAO 存放路径 -->
        <javaClientGenerator targetPackage="org.ljh.mapper" targetProject="src/main/java" type="XMLMAPPER"/>

        <!-- 配置需要指定生成的数据库和表,% 代表所有表 -->
        <table tableName="%"></table>
        <!-- <table tableName="tb_roles"> -->
        <!-- &lt;!&ndash; mysql 配置 &ndash;&gt;-->
        <!-- <generatedKey column="roleid" sqlStatement="Mysql" identity="true"/>-->
        <!-- </table>-->
        <!-- <table tableName="tb_permissions">-->
        <!-- &lt;!&ndash; mysql 配置 &ndash;&gt;-->
        <!-- <generatedKey column="perid" sqlStatement="Mysql" identity="true"/>-->
        <!-- </table>-->
    </context>
</generatorConfiguration>
4.3 编写公共接口
/*
 * @className: GeneralDao
 * @description tkmapper的公共接口 供其它接口继承
 * @since JDK1.8
 * @author ljh
 * @createdAt  2021/7/27 
 * @version 1.0.0
 **/
public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T> {
}
4.4 执行插件

执行maven插件生成数据库表相对应的实体类及接口映射文件
在这里插入图片描述
执行后相应的文件就已全部生成

4.5 测试

因为所有的接口都继承自Mapper<T>, MySqlMapper<T>,这2个接口中封装好了所有的单表操作,直接调用相关方法即可。如若有多表关联操作时,也可以在mapper映射文件中直接编写相关的sql脚本即可(规则同mybatis一致)。
在这里插入图片描述

@SpringBootTest
class WebApplicationTests {
    @Autowired
    UsersMapper usersMapper;
    @Test
    void contextLoads() {
        List<Users> users = usersMapper.selectAll();
        System.out.println(users);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值