Mybatis-Flex快速入门教程

目录

一、Mybatis-Flex是什么?

二、Mybatis-Flex的有什么特点?

三、Mybatis-Flex和同类框架对比

四、Mybatis-Flex支持的数据库类型

五、快速入门

(1)引入依赖 

(2)创建数据库

(3)编写实体类和 Mapper

(4)通过 main 方法开始使用 Mybatis-Flex(无 Spring 的场景)

(5)更多示例​


一、Mybatis-Flex是什么?

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

官网文档:Mybatis-Flex - Mybatis-Flex 官方网站

二、Mybatis-Flex的有什么特点?

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

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

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

三、Mybatis-Flex和同类框架对比

(1)功能对比:Mybatis-Flex 和同类框架「功能」对比 - Mybatis-Flex 官方网站
(2)性能对比:Mybatis-Flex 和同类框架「性能」对比 - Mybatis-Flex 官方网站

四、Mybatis-Flex支持的数据库类型

数据库 描述
mysql MySql 数据库
mariadb MariaDB 数据库
oracle Oracle11g 及以下数据库
oracle12c Oracle12c 及以上数据库
db2 DB2 数据库
hsql HSQL 数据库
sqlite SQLite 数据库
postgresql PostgreSQL 数据库
sqlserver2005 SQLServer2005 数据库
sqlserver SQLServer 数据库
dm 达梦数据库
xugu 虚谷数据库
kingbasees 人大金仓数据库
phoenix Phoenix HBase 数据库
gauss Gauss 数据库
clickhouse ClickHouse 数据库
gbase 南大通用(华库)数据库
gbase-8s 南大通用数据库 GBase 8s
oscar 神通数据库
sybase Sybase ASE 数据库
OceanBase OceanBase 数据库
Firebird Firebird 数据库
derby Derby 数据库
highgo 瀚高数据库
cubrid CUBRID 数据库
goldilocks GOLDILOCKS 数据库
csiidb CSIIDB 数据库
hana SAP_HANA 数据库
impala Impala 数据库
vertica Vertica 数据库
xcloud 行云数据库
redshift 亚马逊 redshift 数据库
openGauss 华为 openGauss 数据库
TDengine TDengine 数据库
informix Informix 数据库
greenplum Greenplum 数据库
uxdb 优炫数据库

五、快速入门

(1)引入依赖 

1、只用到了 Mybatis,没用到 Spring 的场景

<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-core</artifactId>
    <version>1.2.0</version>
</dependency>

2、用到了 Spring 的场景

<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-spring</artifactId>
    <version>1.2.0</version>
</dependency>

3、用到了 Spring Boot 的场景

<dependency>
    <groupId>com.mybatis-flex</groupId>
    <artifactId>mybatis-flex-spring-boot-starter</artifactId>
    <version>1.2.0</version>
</dependency>

(2)创建数据库

CREATE TABLE IF NOT EXISTS `tb_account`
(
    `id`        INTEGER PRIMARY KEY auto_increment,
    `user_name` VARCHAR(100),
    `age`       Integer,
    `birthday`  DATETIME
);

(3)编写实体类和 Mapper

@Table("tb_account")
public class Account {

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

使用 @Table("tb_account") 设置实体类与表名的映射关系
使用 @Id(keyType = KeyType.Auto) 标识主键为自增

Mapper 接口继承 BaseMapper 接口:

public interface AccountMapper extends BaseMapper<Account> {
    
}

 (4)通过 main 方法开始使用 Mybatis-Flex(无 Spring 的场景)

public class HelloWorld {
    public static void main(String[] args) {

        //创建数据源
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mybatis-flex");
        dataSource.setUsername("username");
        dataSource.setPassword("password");

        //配置数据源
        MybatisFlexBootstrap.getInstance()
                .setDatasource(dataSource)
                .addMapper(AccountMapper.class)
                .start();

        //获取 mapper
        AccountMapper mapper = MybatisFlexBootstrap.getInstance()
                .getMapper(AccountMapper.class);
        
        //示例1:查询 id=1 的数据
        Account account = mapper.selectOneById(1);
        
        
        //示例2:根据 QueryWrapper 查询 id >= 100 的数据列表
        QueryWrapper query = QueryWrapper.create()
                .where(ACCOUNT.ID.ge(100));
        List<Account> accounts = mapper.selectListByQuery(query);
        
        
        //示例3:者使用 Db + Row 查询
        String sql = "select * from tb_account where age > ?";
        List<Row> rows = Db.selectListBySql(sql, 18);
    }
}

(5)更多示例

猜你喜欢

转载自blog.csdn.net/qq_19309473/article/details/130417630