首页 > 其他分享 >SpringBoot接入Mybatis-Flex

SpringBoot接入Mybatis-Flex

时间:2023-12-31 16:32:52浏览次数:32  
标签:Flex SpringBoot flex mybatis MyBatis Mybatis globalConfig 生成

相信不少的伙伴在日常开发中应该都用过MyBatis增强框架吧,目前来说国内用的比较多的无非就是MyBatis-Plus,那么今天我再给大家介绍一款新的MyBatis增强框架,它就是MyBatis-Flex。

那么这个框架到底怎么样呢,跟MyBatis-Plus有什么不一样的呢,下面我们先来看下它的介绍,这是官网的一段介绍。

MyBatis-Flex 是一个优雅的 MyBatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper^亮点 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。

总而言之,MyBatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多的时间专注于自己的事情。

我们在大概了解了一下Mybaits-Flex的定义之后,大家其实也有一些疑惑,就比如这个框架跟MyBatis-Plus相比如何呢,既然都有了MyBatis-Plus,那么为什么还会继续出来个这么个框架,我们接下来看看Mybaits-Flex官网的这几个框架的对比数据。

这个是官网显示的这几个框架的功能对比,通过这个图不难看出Mybaits-Flex支持的功能更多更丰富,其中我感觉最惊艳的还是自带的多表联查,这个对于我这种工作业务就非常方便。下面我就使用SpringBoot3版本针对 Mybaits-Flex 做一个简单的集成吧。

1.首先Maven依赖

<!-- mybatis-flex -->
<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-spring-boot-starter</artifactId>
    <version>1.7.5</version>
    <exclusions>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 添加已适配 springboot 3.2 的 mybatis-spring 依赖-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>3.0.3</version>
</dependency>
<!-- mybatis-flex-codegen -->
<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-codegen</artifactId>
    <version>1.7.5</version>
</dependency>
<!-- mysql-connector -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
</dependency>

2.配置文件

server:
  port: 8001
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis-flex
    username: root
    password: root
  data:
    redis:
      host: 127.0.0.1
      port: 6379
      database: 0
      password: redis
      lettuce:
        pool:
          max-active: 200
          max-wait: -1ms
          max-idle: 10
          min-idle: 0
mybatis-flex:
  global-config:
    print-banner: true
    logic-delete-column: deleted
    normal-value-of-logic-delete: 0
    deleted-value-of-logic-delete: 1
    version-column: version

3.取消APT

项目跟路径下新建一个配置文件mybatis-flex.config,这个是用来配置一些APT相关的配置信息。因为我不需要APT自动生成,所以我需要配置关闭APT功能,它默认是开启的,配置关闭即可。

processor.enable=false

4.代码生成器

这个功能还是很不错的,不需要太专注于常用的数据库交互的基本方法,全部都交给自动生成器就可以,我们只需要进行一些简单的配置即可。

public class MybatisFlexCodegen {
    public static void main(String[] args) {
        // 配置数据源
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mybatis-flex?characterEncoding=utf-8");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        // 创建配置内容,两种风格都可以。
        GlobalConfig globalConfig = createGlobalConfigUseStyle();
        // 通过 datasource 和 globalConfig 创建代码生成器
        Generator generator = new Generator(dataSource, globalConfig);
        // 生成代码
        generator.generate();
    }

    public static GlobalConfig createGlobalConfigUseStyle() {
        // 创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();

        // 设置根包
        globalConfig.getPackageConfig()
                .setSourceDir("你自己的代码输出目录")
                .setBasePackage("cn.youhaveme");

        // 设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
        globalConfig.getStrategyConfig()
                // .setTablePrefix("tb_")
                .setGenerateTable("user", "user_auth")
                .setLogicDeleteColumn("deleted")
                .setVersionColumn("version");

        // 设置生成 entity 并启用 Lombok
        globalConfig.enableEntity()
                .setWithLombok(true);

        // 设置生成 mapper
        globalConfig.enableMapper();

        // 设置生成Service
        globalConfig.enableService();

        // 设置生成Impl
        globalConfig.enableServiceImpl();

        // 设置生成Controller
        globalConfig.enableController();

        // 设置生成TableDef
        globalConfig.enableTableDef();

        // 设置生成MapperXml
        globalConfig.enableMapperXml();

        // 设置生成JavaDoc
        globalConfig.getJavadocConfig()
                .setAuthor("youhaveme")
                .setSince("1.0.0");


        return globalConfig;
    }

}

这个代码生成器一出,基本上的搭建流程也结束了,这个搭建过程还是比较容易的呢,其实这个框架给我认为最强大的还是对于多表联查的支持与增强功能,然后就是APT的惊艳,虽然我没用,但是不妨碍它的设计之秀,好啦,下期继续。

标签:Flex,SpringBoot,flex,mybatis,MyBatis,Mybatis,globalConfig,生成
From: https://blog.51cto.com/u_16167640/9049028

相关文章

  • SpringBoot2 整合 Eurkea 实例
    文章目录1.概述2.注册示例2.1工程目录2.2引入依赖2.3启动类2.4配置文件2.5启动服务注册中心3.服务提供者(eurekaclient)实例3.1工程目录3.2引入依赖3.3Java源文件3.5配置文件3.6启动服务提供者参考文献1.概述Eurkea主要负责服务治理功能。服务治理主要用来实现各......
  • SpringBoot2 整合 SpringCloud Feign 实例
    文章目录1.简介2.工程实例2.1注册中心springcloud-study-eureka-server2.1.1依赖pom.xml2.1.2配置文件application.properties2.1.3启动类EurekaServerApplication.java2.2服务提供者springcloud-study-hello-service2.2.1依赖pom.xml2.2.2配置文件application.ym......
  • SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例
    文章目录1.概述2.短路器3.SpringFeign使用Hystrix断路器3.1工程实例3.2修改Fegin模块3.3测试运行参考文献1.概述微服务架构中服务之间互相调用,单个服务通常会集群部署,由于网络等原因,服务不能保证100%可用,如果单个服务出现问题会出现请求的堆积,Servlet容器的线程资源......
  • SpringBoot2 整合 Redis 实例,实现写入和读取的操作
    1.启动RedisServer启动redisserver,如下图所示,端口号6379:2.工程实例2.1工程目录工程目录如下图所示:2.2pom.xml引入依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>......
  • SpringBoot原理学习
    一、IoC/DI相关1.如何进行依赖注入?①依赖注入的三种方式Ⅰ.属性注入/***Field注入/属性注入**///@Resource(name="mySQLDbServiceImpl")//@Autowired@Qualifier(value="mySQLDbServiceImpl")privateDbServicedbService;@Aut......
  • 部署springboot前后端分离框架
    springboot前后端分离的文件长这样 1.是后端代码2.是前端代码3.是数据库省去了语句参照了一下几个博主的文章部署成功:超详细部署后端:https://blog.csdn.net/weixin_45393094/article/details/123674367运行时遇到报错信息:https://blog.csdn.net/qq_44802992/article/detai......
  • SpringBoot 集成 Dubbo
    分布式、微服务与RPC什么是分布式?分布式就是将一个应用程序的功能拆分到多个独立的进程中,每个进程都运行在不同的机器上,通过网络连接起来,这样就形成了一个分布式的系统。什么是微服务架构?微服务架构将应用程序拆分成一组小的服务(微服务),每个服务运行在自己的进程中,服务之间通过......
  • SpringBoot2 全局捕获异常实例
    1. SpringBoot全局捕获异常首先写一个会抛出异常的 Controller 类 如下所示,i=1/0,0不能作为除数,显然这个 Controller 类 ErrorController.java会抛出异常。@EnableAutoConfiguration@RestControllerpublicclassErrorController{@RequestMapping("/errorTest......
  • SpringBoot2 读取不同环境的配置文件实例
    SpringBoot 可以在application.properties 中配置信息spring.profiles.active来读取不同环境的配置文件。1.  SpringBoot2读取不同环境的配置文件工程运行环境可能有:开发环境、测试环境和生产环境,可以通过修改application.properties 来获取不同环境的的配置信息。首先我......
  • IDEA 中 SpringBoot2 整合 Mybatis 实例实例
    记录在IDEA中 使用SpringBoot2整合Mybatis的实例,环境:Java8+Maven+MySQL8。1. 添加依赖 添加MyBatis依赖,MySQL连接依赖,,数据库用的MySQL8。<!--MyBatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-s......