import DBConnectionProvider from "./DBConnectionProvider"; import MysqlConnectionProvider from "./mysql/MysqlConnectionProvider"; import ApplicationConfig from "../config/ApplicationConfig"; import {CONNECTIONS, DB_TYPE, POOL_TYPE} from "../@types/types"; const config = ApplicationConfig.loadDefault(); export default class DBConnectionManager { public static instance:DBConnectionManager; private dbprovider!:DBConnectionProvider; private type:DB_TYPE = config.get('JDBC.DRIVER.NAME', 'MYSQL') as DB_TYPE; private pool: any; private createDatabase(type?:DB_TYPE){ if(type) this.type = type; if (this.type === 'MYSQL') { this.dbprovider = new MysqlConnectionProvider(); }else if (this.type === 'ORACLE') { this.dbprovider = new MysqlConnectionProvider(); } this.pool = this.dbprovider.createPool('JDBC.DRIVER.INFO'); } public async getConnection():Promise{ return await this.dbprovider.getConnection(this.pool); } public static getInstance(type?:DB_TYPE):DBConnectionManager{ if(!this.instance){ this.instance = new DBConnectionManager(); this.instance.createDatabase(type); } return this.instance; } }