1import mariadb from 'mariadb';
4 private pool: mariadb.Pool;
6 constructor(host: string, user: string, password: string, database: string, port: number) {
7 this.pool = mariadb.createPool({
17 private async getConnection(): Promise<mariadb.PoolConnection> {
18 return await this.pool.getConnection();
21 public async writeToTable(tableName: string, columns: string[], data: any[]): Promise<void> {
22 let conn: mariadb.PoolConnection | null = null;
24 conn = await this.getConnection();
25 const query = `INSERT INTO ${tableName} (${columns.join(', ')}) VALUES (${data.map(() => '?').join(', ')})`;
26 await conn.query(query, data);
28 console.error('Error writing to table:', error);
30 if (conn) conn.release();
34 public async describeTable(tableName: string): Promise<any> {
35 let conn: mariadb.PoolConnection | null = null;
37 conn = await this.getConnection();
38 return await conn.query(`DESCRIBE ${tableName}`);
40 console.error('Error describing table:', error);
43 if (conn) conn.release();
47 public async getContentFromTable(tableName: string, columns: string[], whereClause?: string, values: any[] = []): Promise<any> {
48 let conn: mariadb.PoolConnection | null = null;
50 conn = await this.getConnection();
51 const query = `SELECT ${columns.join(', ')} FROM ${tableName} ${whereClause ? 'WHERE ' + whereClause : ''}`;
52 return await conn.query(query, values);
54 console.error('Error getting content from table:', error);
57 if (conn) conn.release();
61 public async dropFromTable(tableName: string, whereClause: string, values: any[]): Promise<void> {
62 let conn: mariadb.PoolConnection | null = null;
64 conn = await this.getConnection();
65 const query = `DELETE FROM ${tableName} WHERE ${whereClause}`;
66 await conn.query(query, values);
68 console.error('Error deleting from table:', error);
70 if (conn) conn.release();
73 public async updateTable(tableName: string, columns: string[], data: any[], whereClause: string, whereValues: any[]): Promise<void> {
74 let conn: mariadb.PoolConnection | null = null;
76 conn = await this.getConnection();
78 const setClause = columns.map(column => `${column} = ?`).join(', ');
80 const query = `UPDATE ${tableName} SET ${setClause} WHERE ${whereClause}`;
82 await conn.query(query, [...data, ...whereValues]);
85 console.error('Error updating table:', error);
87 if (conn) conn.release();