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 绝对值得一试!

相关推荐
咖啡八杯11 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户1285261160219 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java
Linsk19 小时前
组件 = 模板 + 业务逻辑
java·前端·vue.js
星沉远浦20 小时前
用Gemini高效解决Java代码报错难以定位的问题
java
rocpp1 天前
Android 多语言切换实战:从 Context 到 Android 13 应用语言适配
android·kotlin
用户298698530141 天前
Word 文档字符级格式化:Java 实现方案详解
java·后端
笨鸟飞不快1 天前
从单个服务到集群:一次完整的性能排查复盘
java·前端
荣码1 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
SamDeepThinking1 天前
Java微服务练习方式
java·后端·微服务
黄林晴1 天前
用了这么久 Koin Scope,原来一直都用错了?
android·kotlin