UNPKG

es-entity

Version:

ORM framework for Node js based on Ecmascript 6 and Typescript.

67 lines 2.08 kB
import * as bean from '../bean/index.js'; import Handler from './Handler.js'; const oracledbDriver = await import('oracledb'); export default class Oracle extends Handler { connectionPool; async init() { this.connectionPool = await oracledbDriver.createPool({ user: this.config.username, password: this.config.password, connectString: `${this.config.host}:${this.config.port}/${this.config.database}` }); } async getConnection() { let conn = await this.connectionPool.getConnection(); return conn; } async initTransaction(conn) { } async commit(conn) { return conn.commit(); } async rollback(conn) { return conn.rollback(); } async close(conn) { return conn.close(); } async end() { } async run(queryStmt, connection) { let { query, dataArgs } = this.prepareQuery(queryStmt); let temp; if (connection) { temp = await connection.execute(query, dataArgs); } else { let conn = await this.connectionPool.getConnection(); try { temp = await conn.execute(query, dataArgs); } finally { conn.close(); } } let result = new bean.ResultSet(); result.rows = temp.rows ?? []; result.rowCount = temp.rowsAffected ?? 0; return result; } async stream(queryStmt, connection) { let { query, dataArgs } = this.prepareQuery(queryStmt); let stream; if (connection) { stream = connection.queryStream(query, dataArgs); } else { let conn = await this.connectionPool.getConnection(); stream = conn.queryStream(query, dataArgs); stream.on('end', function () { stream.destroy(); }); stream.on('close', function () { conn.close(); }); } return stream; } } //# sourceMappingURL=Oracle.js.map