- 所有超级接口:
AutoCloseable
数据库服务门面,负责连接初始化、实体仓库管理与结构迁移。
服务实例由 Linlang 运行时提供,不通过 ServiceLoader 发现。
一个典型生命周期如下:
- 使用
init(DbType, DbConfig)初始化连接池; - 使用
repo(Class)获取实体仓库; - 按需使用
migrate()同步数据库结构; - 在插件关闭时调用
close()。
-
嵌套类概要
嵌套类修饰符和类型接口说明static class数据库连接配置。static enum运行时内建支持的数据库类型。 -
方法概要
修饰符和类型方法说明default voidclose()关闭数据库服务。voidflushAll()将所有仓库中尚未提交的修改写入底层数据库。<T> void将指定实体仓库中尚未提交的修改写入底层数据库。voidinit(DataService.DbType type, DataService.DbConfig cfg) 根据数据库类型与连接配置初始化服务。voidmigrate()执行实现支持的数据库结构迁移。<T,ID> Repository<T, ID> 获取绑定到指定实体类型的仓库。
-
方法详细资料
-
init
根据数据库类型与连接配置初始化服务。- 参数:
type- 数据库类型cfg- 连接配置- 抛出:
IllegalStateException- 服务已经初始化或运行时无法建立连接时
-
repo
获取绑定到指定实体类型的仓库。- 类型参数:
T- 实体类型ID- 主键类型- 参数:
entityType- 实体类- 返回:
- 对应实体的仓库
-
migrate
void migrate()执行实现支持的数据库结构迁移。不支持自动迁移的实现可以不执行任何操作。
-
flushAll
void flushAll()将所有仓库中尚未提交的修改写入底层数据库。 -
flushOf
将指定实体仓库中尚未提交的修改写入底层数据库。- 类型参数:
T- 实体类型- 参数:
entityType- 实体类
-
close
default void close()关闭数据库服务。默认实现仅调用
flushAll();具体运行时可以覆盖此方法以释放连接池。- 指定者:
close在接口中AutoCloseable
-