feat: refactor database

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2022-05-11 10:54:44 +08:00
parent 4ee8fc9a20
commit 47413c6766
5 changed files with 87 additions and 37 deletions

View File

@@ -1,12 +1,17 @@
import { database } from '@ccms/api'
import { provideSingleton } from '@ccms/container'
import { DataBase, DataBaseConfig } from './database'
import { DataBase } from './database'
@provideSingleton(database.DataBaseManager)
export class DataBaseManager {
export class DataBaseManager extends database.DataBaseManager {
private mainDatabase: DataBase
private databases = new Map<string, DataBase>()
constructor() {
super()
process.on('exit', () => this.disable())
}
/**
* 设置主数据库
* @param mainDatabase 主数据库
@@ -29,8 +34,8 @@ export class DataBaseManager {
* @param name 数据库名称 用于代码 database Name use at code
* @param config 数据库配置
*/
createDatabase(name: string, config: DataBaseConfig) {
Java.synchronized(() => {
createDatabase(name: string, config: database.DataBaseConfig) {
return Java.synchronized(() => {
if (!this.databases.has(name)) {
this.databases.set(name, new DataBase(config))
}
@@ -38,6 +43,13 @@ export class DataBaseManager {
}, this.databases)()
}
removeDatabase(name: string) {
if (this.databases.has(name)) {
this.databases.get(name).close()
}
return this.databases.delete(name)
}
getDatabase(name: string) {
return this.databases.get(name)
}