找回密码
 立即注册
首页 业界区 业界 Kite:填充处理器

Kite:填充处理器

孟茹云 昨天 16:00
Kite:填充处理器

填充处理器功能允许你在增删改查时,自动设置某些字段的值,而无需手动指定。
官方实现

Kite 提供了一个时间填充处理器 TimeFillHandler,它可以使用 @CreateTime 和 @UpdateTime 注解自动设置创建时间和更新时间字段的值。
定义注解

注解只能生效在字段上。
你可以添加属性来实现更复杂的功能。
:::tabs key:kite
== Java
  1. import java.lang.annotation.Documented;
  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;
  6. @Target(ElementType.FIELD)
  7. @Retention(RetentionPolicy.RUNTIME)
  8. @Documented
  9. public @interface CreateTime {}
复制代码
== Kotlin
  1. @Target(AnnotationTarget.FIELD)
  2. @Retention(AnnotationRetention.RUNTIME)
  3. @MustBeDocumented
  4. annotation class CreateTime
复制代码
:::
定义填充处理器

可以根据注解和字段类型来返回不同的值。
:::tabs key:kite
== Java
  1. import com.tang.kite.handler.fill.FillHandler;
  2. import java.lang.annotation.Annotation;
  3. import java.lang.reflect.Field;
  4. import java.time.LocalDateTime;
  5. public class TimeFillHandler implements FillHandler {
  6.     @Override
  7.     @Nullable
  8.     public Object fillValue(@NotNull Annotation annotation, @NotNull Field field, @NotNull Object entity) {
  9.         return LocalDateTime.now();
  10.     }
  11. }
复制代码
== Kotlin
  1. import com.tang.kite.handler.fill.FillHandler
  2. import java.lang.annotation.Annotation
  3. import java.lang.reflect.Field
  4. import java.time.LocalDateTime
  5. class TimeFillHandler : FillHandler {
  6.     override fun fillValue(annotation: Annotation, field: Field, entity: Any): Any? {
  7.         return LocalDateTime.now()
  8.     }
  9. }
复制代码
:::
注册填充处理器

你可以在 KiteConfig 中注册填充处理器。
:::tabs key:kite
== Java
  1. import com.tang.kite.annotation.fill.CreateTime;
  2. import com.tang.kite.config.KiteConfig;
  3. import com.tang.kite.enumeration.SqlType;
  4. import com.tang.kite.handler.fill.FillKey;
  5. import com.tang.kite.handler.fill.TimeFillHandler;
  6. KiteConfig.getFillHandlers().put(new FillKey(CreateTime.class, SqlType.INSERT), new TimeFillHandler());
复制代码
== Kotlin
  1. import com.tang.kite.annotation.fill.CreateTime
  2. import com.tang.kite.config.KiteConfig
  3. import com.tang.kite.enumeration.SqlType
  4. import com.tang.kite.handler.fill.FillKey
  5. import com.tang.kite.handler.fill.TimeFillHandler
  6. KiteConfig.fillHandlers[FillKey(CreateTime::class, SqlType.INSERT)] = TimeFillHandler()
复制代码
:::
使用示例

:::tabs key:kite
== Java
  1. public class Account {
  2.     @CreateTime
  3.     private LocalDateTime createTime;
  4.     @UpdateTime
  5.     private LocalDateTime updateTime;
  6. }
复制代码
== Kotlin
  1. class Account {
  2.     @CreateTime
  3.     var createTime: LocalDateTime? = null
  4.     @UpdateTime
  5.     var updateTime: LocalDateTime? = null
  6. }
复制代码
:::
官方文档

详细的使用文档请参考:

  • 中文文档
  • 英文文档
源码

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

  • Kite GitHub 仓库
  • Kite Gitee 仓库
总结

Kite 是一个功能强大、易于使用的 ORM 框架,它通过全自动映射和简洁的 API,大大简化了数据库操作的开发工作。无论是在 Kotlin 项目还是 Java 项目中,都能提供高效、便捷的数据库访问体验。
如果您正在寻找一个轻量级、高性能的 ORM 框架,Kite 绝对值得一试!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册