Kite:填充处理器
填充处理器功能允许你在增删改查时,自动设置某些字段的值,而无需手动指定。
官方实现
Kite 提供了一个时间填充处理器 TimeFillHandler,它可以使用 @CreateTime 和 @UpdateTime 注解自动设置创建时间和更新时间字段的值。
定义注解
注解只能生效在字段上。
你可以添加属性来实现更复杂的功能。
:::tabs key:kite
== Java- import java.lang.annotation.Documented;
- import java.lang.annotation.ElementType;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- import java.lang.annotation.Target;
- @Target(ElementType.FIELD)
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- public @interface CreateTime {}
复制代码 == Kotlin- @Target(AnnotationTarget.FIELD)
- @Retention(AnnotationRetention.RUNTIME)
- @MustBeDocumented
- annotation class CreateTime
复制代码 :::
定义填充处理器
可以根据注解和字段类型来返回不同的值。
:::tabs key:kite
== Java- import com.tang.kite.handler.fill.FillHandler;
- import java.lang.annotation.Annotation;
- import java.lang.reflect.Field;
- import java.time.LocalDateTime;
- public class TimeFillHandler implements FillHandler {
- @Override
- @Nullable
- public Object fillValue(@NotNull Annotation annotation, @NotNull Field field, @NotNull Object entity) {
- return LocalDateTime.now();
- }
- }
复制代码 == Kotlin- import com.tang.kite.handler.fill.FillHandler
- import java.lang.annotation.Annotation
- import java.lang.reflect.Field
- import java.time.LocalDateTime
- class TimeFillHandler : FillHandler {
- override fun fillValue(annotation: Annotation, field: Field, entity: Any): Any? {
- return LocalDateTime.now()
- }
- }
复制代码 :::
注册填充处理器
你可以在 KiteConfig 中注册填充处理器。
:::tabs key:kite
== Java- import com.tang.kite.annotation.fill.CreateTime;
- import com.tang.kite.config.KiteConfig;
- import com.tang.kite.enumeration.SqlType;
- import com.tang.kite.handler.fill.FillKey;
- import com.tang.kite.handler.fill.TimeFillHandler;
- KiteConfig.getFillHandlers().put(new FillKey(CreateTime.class, SqlType.INSERT), new TimeFillHandler());
复制代码 == Kotlin- import com.tang.kite.annotation.fill.CreateTime
- import com.tang.kite.config.KiteConfig
- import com.tang.kite.enumeration.SqlType
- import com.tang.kite.handler.fill.FillKey
- import com.tang.kite.handler.fill.TimeFillHandler
- KiteConfig.fillHandlers[FillKey(CreateTime::class, SqlType.INSERT)] = TimeFillHandler()
复制代码 :::
使用示例
:::tabs key:kite
== Java- public class Account {
- @CreateTime
- private LocalDateTime createTime;
- @UpdateTime
- private LocalDateTime updateTime;
- }
复制代码 == Kotlin- class Account {
- @CreateTime
- var createTime: LocalDateTime? = null
- @UpdateTime
- var updateTime: LocalDateTime? = null
- }
复制代码 :::
官方文档
详细的使用文档请参考:
源码
Kite 的源码托管在 GitHub 和 Gitee 上,您可以 在以下地址查看和贡献:
- Kite GitHub 仓库
- Kite Gitee 仓库
总结
Kite 是一个功能强大、易于使用的 ORM 框架,它通过全自动映射和简洁的 API,大大简化了数据库操作的开发工作。无论是在 Kotlin 项目还是 Java 项目中,都能提供高效、便捷的数据库访问体验。
如果您正在寻找一个轻量级、高性能的 ORM 框架,Kite 绝对值得一试!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |