Kite:两种方式实现动态表名

Kite:两种方式实现动态表名

有两种方式实现动态表名:全局配置和局部配置。

如果全局配置和局部配置同时存在,局部配置会覆盖全局配置。

全局配置

全局配置用于所有的 Mapper 方法,可以通过以下方式进行配置

  • Java
java 复制代码
TableConfig.setDynamicTableName(new DynamicTableProcessor() {

    @Override
    public @NonNull String process(@NonNull String tableName) {
        return tableName + "_" + new Random().nextInt(10);
    }

});
  • Kotlin
kotlin 复制代码
TableConfig.dynamicTableName = object : DynamicTableProcessor {

    override fun process(tableName: String): String {
        return tableName + "_" + (0..9).random()
    }

}

局部配置

局部配置用于单个 Mapper 方法,可以通过 @Table 进行配置

  • Java
java 复制代码
import com.tang.kite.config.table.DynamicTableProcessor;
import org.jspecify.annotations.NonNull;

import java.util.Random;

public class RandomDynamicTableProcessor implements DynamicTableProcessor {

    @Override
    public @NonNull String process(@NonNull String tableName) {
        return tableName + "_" + new Random().nextInt(10);
    }

}
java 复制代码
import com.tang.kite.annotation.Table;

@Table(dynamicTableName = RandomDynamicTableProcessor.class)
public class Account {}
  • Kotlin
kotlin 复制代码
import com.tang.kite.config.table.DynamicTableProcessor

class RandomDynamicTableProcessor : DynamicTableProcessor {

    override fun process(tableName: String): String {
        return tableName + "_" + (0..9).random()
    }

}
kotlin 复制代码
import com.tang.kite.annotation.Table

@Table(dynamicTableName = RandomDynamicTableProcessor::class)
class Account {}

官方文档

详细的使用文档请参考:

源码

Kite 的源码托管在 GitHub 和 Gitee 上,您可以在以下地址查看和贡献:

总结

Kite 是一个功能强大、易于使用的 ORM 框架,它通过全自动映射和简洁的 API,大大简化了数据库操作的开发工作。无论是在 Kotlin 项目还是 Java 项目中,都能提供高效、便捷的数据库访问体验。

如果您正在寻找一个轻量级、高性能的 ORM 框架,Kite 绝对值得一试!

相关推荐
liangshanbo1215几秒前
主系统登录后,子系统怎么实现自动登录?
java·网络·数据库
ShineWinsu19 分钟前
对于Redis:缓存的解析
java·redis·缓存·缓存穿透·缓存击穿·缓存雪崩·缓存预热
rannn_11128 分钟前
【Java面试题】高频面试题1|Java 后端、MySQL、Redis 与 RAG 面试整理
java·jvm·数据库·后端·面试
写后端的胖头鱼31 分钟前
一文详解Spring 事务失效场景
java·spring·事务·transactional·事务传播机制
Q264336502335 分钟前
【有源码】基于Spring Boot和Vue的在线考试与交流系统-教育信息化背景下在线考试与交流一体化平台
java·vue.js·spring boot·mysql·spring·毕业设计·课程设计
事圆则缓39 分钟前
Kotlin Flow、StateFlow、SharedFlow 全解析:冷流、热流与 Android 状态管理
android·kotlin·php
应用市场44 分钟前
把旧 Pixel 变成相册备份中转站(上):Mac 到安卓的照片传输工具设计——流式上传、sha256 校验、adb forward 与 Bonjour
android·macos·adb·kotlin·swift
Mikko71 小时前
JVM 线上排查实战(七):jps 看不到进程、jstack 报不允许的操作怎么办?attach 失败的六种情况实测
java·运维·jvm·后端
jianjinwssy1 小时前
MyBatis-Plus 从入门到实战:常用功能与核心原理
java·mybatis
会编程的吕洞宾1 小时前
Spring AI 2.0 会话记忆实战,让 AI 助手记住每一次对话
java·人工智能·spring