mybatis-file

说明一下(有些东西是官网上的,有些是自己写demo的东西,有些乱,但是仔细看是可以发现端倪的)

简介

mybatis-flex 是什么

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

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

自己总结 (mybatis增强工具  类似mybatis-plus 但可能比mybatisplus好一点 但是我感觉市场占有率不高  MyBatis-Flex - MyBatis-Flex 官方网站

特征

官网叙述

1、轻量:除了 MyBatis,没有任何第三方依赖轻依赖、没有任何拦截器,其原理是通过 SqlProvider 的方式实现的轻实现。同时,在执行的过程中,没有任何的 Sql 解析(Parse)轻运行。 这带来了几个好处:1、极高的性能;2、极易对代码进行跟踪和调试; 3、把控性更高。

2、灵活:支持 Entity 的增删改查、以及分页查询的同时,MyBatis-Flex 提供了 Db + Row^灵活 工具,可以无需实体类对数据库进行增删改查以及分页查询。 与此同时,MyBatis-Flex 内置的 QueryWrapper^灵活 可以轻易的帮助我们实现 多表查询链接查询子查询 等等常见的 SQL 场景。

3、强大:支持任意关系型数据库,还可以通过方言持续扩展,同时支持 多(复合)主键逻辑删除乐观锁配置数据脱敏数据审计、 数据填充 等等功能。

自己介绍

和mybatis-plus 一样,没什么说的,依赖上不同而已,具体上就是mybais+mybatisplus可以实现的,它可以实现,他们俩实现不了的,他也可以实现

快速开始

自我感觉这个框架可以代替mybaisplus 所有在学习完myabtis之后可以直接上手这个

要求有一定的基础,至少学过Java基础,Javaweb springboot 这些

 

 springboot的版本是个谜,一般用个稳定的就可以,自己写demo可以用一下版本比较高的,生产环境下还是稳定版本比较好

maven依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
            <dependency>
                <groupId>com.mybatis-flex</groupId>
                <artifactId>mybatis-flex-spring-boot-starter</artifactId>
                <version>1.5.5</version>
            </dependency>
        <!-- 数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- pgsql -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </dependency>
        <!-- for test only -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

application.yml配置

# DataSource Config
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flex_test
    username: root
    password: 12345678

配置类(主程序)

@MapperScan("com.mybatis_fiex.mapper")

@MapperScans
(


{

 @MapperScan("com.mybatis_fiex.mapper") 

,

 @MapperScan("com.mybatis_fiex.mapperTwo")

} 


)
package com.mybatis_fiex;

import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.annotation.MapperScans;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.mybatis_fiex.mapper")
public class MybatisFiexApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisFiexApplication.class, args);
        System.err.println("开机启动");
    }

}

      这里简单提一句 @MapperScan 和 @MapperScans 他们两个简单来说作用一样的 不过一个配置多个,一个是单个,我也是突然发现,就总结一下

编写实体类和 Mapper 接口

 这里在简单说一下,这些是mybatis-flex提供的注解具体功能去百度把

@Data
@Table("tb_account")
public class Account {

    @Id(keyType = KeyType.Auto)
    private Long id;
    private String userName;
    private Integer age;
    private Date birthday;

}

Mapper 接口继承 BaseMapper 接口:

@Mapper
public interface AccountMapper extends BaseMapper<Account> {

}

测试使用

        先配置一下日志

package com.mybatis_fiex.config;

import com.mybatisflex.core.audit.AuditManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;

/**
 * @author k_koukou
 * @Package com.mybatis_fiex.config
 * @Name 斌
 * @DataTime 2023/8/3
 * @ClassName MyBatisFlexConfiguration
 **/
@Configuration
@Slf4j
public class MyBatisFlexConfiguration {
    public MyBatisFlexConfiguration() {
        //开启审计功能
        AuditManager.setAuditEnable(true);

        //设置 SQL 审计收集器
        AuditManager.setMessageCollector(auditMessage ->
                log.info("{},{}ms", auditMessage.getFullSql()
                        , auditMessage.getElapsedTime())
        );
    }
}

        输出

Account(id=1, userName=张三, age=18, birthday=Sat Jan 11 00:00:00 CST 2020)

       这里在说一句,第一次运行的时候会生成targer目录,该目录的classes目录下的实体类下面会有一个table文件夹,该文件是最大的亮点。可以代替mybatisplus很多容易出现错误的地方,如果自己不知道怎么去引入,先使用mvn去package一下,然后打开目录,右键复制路径,然后就可以引用使用,他的生成的文件如果感觉太长自己写起来比较麻烦,就可以使用privata static finall <> [写一个短一点的] = new <> ;这样就可以了。

基础功能

增删改

        新增数据

BaseMapper提供了inset以及insertBatch方法,用于新增数据

        删除数据

        更新数据

基础查询 

核心功能

其他

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LIUUID

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值