스크롤 기능 포함

This commit is contained in:
leeheejin
2025-09-23 10:45:53 +09:00
parent 37ded5a543
commit f160a33b94
9 changed files with 703 additions and 256 deletions

View File

@@ -0,0 +1,59 @@
import { DatabaseConnectorFactory } from '../database/DatabaseConnectorFactory';
import { ConnectionConfig, QueryResult } from '../interfaces/DatabaseConnector';
import { ConnectionTestResult, TableInfo } from '../types/externalDbTypes';
export class DbConnectionManager {
static async testConnection(
connectionId: number,
dbType: string,
config: ConnectionConfig
): Promise<ConnectionTestResult> {
const connector = await DatabaseConnectorFactory.createConnector(dbType, config, connectionId);
try {
return await connector.testConnection();
} finally {
await DatabaseConnectorFactory.closeConnector(connectionId, dbType); // Close after test
}
}
static async executeQuery(
connectionId: number,
dbType: string,
config: ConnectionConfig,
query: string
): Promise<QueryResult> {
const connector = await DatabaseConnectorFactory.createConnector(dbType, config, connectionId);
try {
return await connector.executeQuery(query);
} finally {
await DatabaseConnectorFactory.closeConnector(connectionId, dbType);
}
}
static async getTables(
connectionId: number,
dbType: string,
config: ConnectionConfig
): Promise<TableInfo[]> {
const connector = await DatabaseConnectorFactory.createConnector(dbType, config, connectionId);
try {
return await connector.getTables();
} finally {
await DatabaseConnectorFactory.closeConnector(connectionId, dbType);
}
}
static async getColumns(
connectionId: number,
dbType: string,
config: ConnectionConfig,
tableName: string
): Promise<any[]> {
const connector = await DatabaseConnectorFactory.createConnector(dbType, config, connectionId);
try {
return await connector.getColumns(tableName);
} finally {
await DatabaseConnectorFactory.closeConnector(connectionId, dbType);
}
}
}