模块 linlang.api

接口 DataService

所有超级接口:
AutoCloseable

public interface DataService extends AutoCloseable
数据库服务门面,负责连接初始化、实体仓库管理与结构迁移。

服务实例由 Linlang 运行时提供,不通过 ServiceLoader 发现。 一个典型生命周期如下:

  1. 使用 init(DbType, DbConfig) 初始化连接池;
  2. 使用 repo(Class) 获取实体仓库;
  3. 按需使用 migrate() 同步数据库结构;
  4. 在插件关闭时调用 close()。
  • 嵌套类概要

    嵌套类
    修饰符和类型
    接口
    说明
    static class 
    数据库连接配置。
    static enum 
    运行时内建支持的数据库类型。
  • 方法概要

    修饰符和类型
    方法
    说明
    default void
    关闭数据库服务。
    void
    将所有仓库中尚未提交的修改写入底层数据库。
    <T> void
    flushOf(Class<T> entityType)
    将指定实体仓库中尚未提交的修改写入底层数据库。
    void
    根据数据库类型与连接配置初始化服务。
    void
    执行实现支持的数据库结构迁移。
    <T, ID> Repository<T,ID>
    repo(Class<T> entityType)
    获取绑定到指定实体类型的仓库。
  • 方法详细资料

    • init

      根据数据库类型与连接配置初始化服务。
      参数:
      type - 数据库类型
      cfg - 连接配置
      抛出:
      IllegalStateException - 服务已经初始化或运行时无法建立连接时
    • repo

      <T, ID> Repository<T,ID> repo(Class<T> entityType)
      获取绑定到指定实体类型的仓库。
      类型参数:
      T - 实体类型
      ID - 主键类型
      参数:
      entityType - 实体类
      返回:
      对应实体的仓库
    • migrate

      void migrate()
      执行实现支持的数据库结构迁移。

      不支持自动迁移的实现可以不执行任何操作。

    • flushAll

      void flushAll()
      将所有仓库中尚未提交的修改写入底层数据库。
    • flushOf

      <T> void flushOf(Class<T> entityType)
      将指定实体仓库中尚未提交的修改写入底层数据库。
      类型参数:
      T - 实体类型
      参数:
      entityType - 实体类
    • close

      default void close()
      关闭数据库服务。

      默认实现仅调用 flushAll();具体运行时可以覆盖此方法以释放连接池。

      指定者:
      close 在接口中 AutoCloseable