feat: complate database & web

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-06-20 16:39:03 +08:00
parent 4c0a77ed23
commit 9b5a303c21
15 changed files with 201 additions and 56 deletions

View File

@@ -1,11 +1,9 @@
import { plugin, database } from '@ccms/api'
import { provideSingleton, inject, postConstruct, Container, ContainerInstance } from '@ccms/container'
import { DataBase } from './database'
import { provideSingleton, inject, postConstruct } from '@ccms/container'
import { DataBase, DataBaseConfig } from './database'
@provideSingleton(database.DataBaseManager)
export class DataBaseManager {
@inject(ContainerInstance)
private container: Container
@inject(plugin.PluginInstance)
private instance: any
@@ -18,20 +16,30 @@ export class DataBaseManager {
try {
this.beanFactory = this.instance.getAutowireCapableBeanFactory()
let mainDatasource = this.beanFactory.getBean(Packages.javax.sql.DataSource.class)
this.mainDatabase = new DataBase(mainDatasource)
this.mainDatabase = new DataBase({ url: mainDatasource })
} catch (error) {
console.ex(error)
}
}
/**
* 获得主数据库
* Get MainDatabase
*/
getMainDatabase() {
return this.mainDatabase
}
createDatabase(name: string, url: string, username: string, password: string) {
/**
* 创建数据库
* Create A Database Instance
* @param name 数据库名称 用于代码 database Name use at code
* @param config 数据库配置
*/
createDatabase(name: string, config: DataBaseConfig) {
Java.synchronized(() => {
if (this.databases[name]) return this.databases[name]
return this.databases[name] = new DataBase(url, username, password)
return this.databases[name] = new DataBase(config)
}, this.databases)()
}