ERP-node/backend-node/src/interfaces/DatabaseConnector.ts

30 lines
879 B
TypeScript
Raw Normal View History

2025-10-02 17:51:15 +09:00
import { ConnectionTestResult, TableInfo } from "../types/externalDbTypes";
2025-09-23 10:45:53 +09:00
export interface ConnectionConfig {
host: string;
port: number;
database: string;
user: string;
password: string;
connectionTimeoutMillis?: number;
queryTimeoutMillis?: number;
ssl?: boolean | { rejectUnauthorized: boolean };
}
export interface QueryResult {
rows: any[];
rowCount?: number;
fields?: any[];
2025-10-02 17:51:15 +09:00
affectedRows?: number; // MySQL/MariaDB용
length?: number; // 배열 형태로 반환되는 경우
2025-09-23 10:45:53 +09:00
}
export interface DatabaseConnector {
connect(): Promise<void>;
disconnect(): Promise<void>;
testConnection(): Promise<ConnectionTestResult>;
2025-10-02 17:51:15 +09:00
executeQuery(query: string, params?: any[]): Promise<QueryResult>; // params 추가
2025-09-23 10:45:53 +09:00
getTables(): Promise<TableInfo[]>;
getColumns(tableName: string): Promise<any[]>; // 특정 테이블의 컬럼 정보 조회
2025-10-02 17:51:15 +09:00
}