mybatis-flex简介(以下文字由优快云创作助手生成):
Mybatis-flex是基于Mybatis的框架,是一个开源的轻量级框架,能够帮助开发者更方便、更快捷地操作数据库。Mybatis-flex提供了一系列的工具和功能,包括数据查询、数据更新、事务管理、数据分页、数据缓存等,使得开发者能够更加关注业务开发,而不是过多地关注底层数据库操作。
Mybatis-flex还支持多种数据库的操作,包括关系型数据库和非关系型数据库,例如MySQL、Oracle、SQL Server、MongoDB等。
Mybatis-flex的特点:
1. 简单易用:Mybatis-flex提供了简单易用的API,开发者只需要简单的配置即可使用。
2. 高效性能:Mybatis-flex采用了缓存、批量更新等多种技术来提高数据库操作效率。
3. 扩展性强:Mybatis-flex提供了丰富的扩展点,开发者可以通过扩展接口来实现自己的需求。
4. 多数据库支持:Mybatis-flex支持多种类型的数据库操作,可以在不同的场景下灵活切换。
总之,Mybatis-flex是一个功能强大、易用性好、扩展性强的数据库操作框架。
引入基本依赖
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot-starter</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-codegen</artifactId>
<version>1.5.3</version>
</dependency>
mybatis-flex yml配置
mybatis-flex:
# 启动时检查是否存在 MyBatis XML 文件,默认不检查
check-config-location: false
# 是否控制台打印 MyBatis-Flex 的 LOGO 及版本号
global-config:
print-banner: true
normal-value-of-logic-delete: 0
deleted-value-of-logic-delete: 1
生成器,修改为自己的配置即可
package gen;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.Test;
/**
* @author 程序员星星
* @date 2023/7/27
* @Description
*/
public class Codegen {
//数据库名和模块名(这里数据库名和模块名一样)
private static final String databaseName = "five_cube_test";
//主机 ip
private static final String host = "192.168.157.129";
//数据库用户名
private static final String username = "root";
//数据库密码
private static final String password = "root";
//生成代码的路径
private static final String path = "D:\\myProject\\my\\test_mybatis_flex";
//表名
private static final String tableName = "user";
//作者
private static final String author = "lzx";
//父包模块名
private static final String moduleName = "mybatisFlex";
//逻辑删除字段
private static final String logicDeleteColumn = "status";
//乐观锁字段
private static final String versionColumn = "version";
@Test
public void genCode() {
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mysql://" + host + ":3306/" + databaseName + "?characterEncoding=utf-8");
dataSource.setUsername(username);
dataSource.setPassword(password);
//创建配置内容,两种风格都可以。
GlobalConfig globalConfig = createGlobalConfigUseStyle2();
//通过 datasource 和 globalConfig 创建代码生成器
Generator generator = new Generator(dataSource, globalConfig);
//生成代码
generator.generate();
}
public static GlobalConfig createGlobalConfigUseStyle2() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.getPackageConfig()
.setSourceDir(path + "/src/main/java")
.setBasePackage("com." + author + "." + moduleName)
.setMapperXmlPath(path + "/src/main/java/com/" + author + "/" + moduleName + "/mapper/xml");
globalConfig.getJavadocConfig()
.setAuthor(author);
//设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
globalConfig.getStrategyConfig()
// .setTablePrefix("tb_")
.setLogicDeleteColumn(logicDeleteColumn)
.setVersionColumn(versionColumn)
.setGenerateTable(tableName);//生成多个表的写法"sys_user","sys_dept"
//设置生成 entity 并启用 Lombok
globalConfig.enableEntity()
.setWithLombok(true);
//设置生成 mapper
globalConfig.enableMapper();
//设置生成 mapper.xml
globalConfig.enableMapperXml();
//设置生成service
globalConfig.enableService();
globalConfig.enableServiceImpl();
//设置生成controller
globalConfig.enableController();
//设置生成tableDef
globalConfig.enableTableDef();
return globalConfig;
}
}
config配置类(可选)
package com.lzx.mybatisFlex.config;
import com.mybatisflex.core.FlexGlobalConfig;
import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.audit.ConsoleMessageCollector;
import com.mybatisflex.core.audit.MessageCollector;
import com.mybatisflex.spring.boot.MyBatisFlexCustomizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
/**
* @author 程序员星星
* @date 2023/6/8
* @Description
*/
@Configuration
public class MyBatisFlexConfiguration implements MyBatisFlexCustomizer {
private static final Logger logger = LoggerFactory.getLogger("mybatis-flex-sql");
@Override
public void customize(FlexGlobalConfig flexGlobalConfig) {
//开启审计功能
AuditManager.setAuditEnable(true);
//设置 SQL 审计收集器
MessageCollector collector = new ConsoleMessageCollector();
AuditManager.setMessageCollector(collector);
//设置 SQL 审计收集器
AuditManager.setMessageCollector(auditMessage ->
logger.info("{},{}ms", auditMessage.getFullSql(), auditMessage.getElapsedTime())
);
}
}