import mysql from 'mysql2/promise'; import { IBaseTable, IDbConfig, IDbOptionalConfig, Icondition, IlimitCondition, IorderCondition, IupdateConfig } from './types'; export { DCL } from './DCL'; export { DDL } from './DDL'; export { DML } from './DML'; export { DQL } from './DQL'; export { sql_data_mode, sql_data_types, cd_hyphen } from './config'; export type TdsSqlConfig = mysql.PoolOptions & IDbConfig; export type TPoolConnection = mysql.PoolConnection; export declare class DsSql { private optionalConfig; private pool?; private err_path; private is_debug; private dbConfig; constructor(configs: TdsSqlConfig, optionalConfig?: IDbOptionalConfig); /** * 测试配置是否成功 */ tryTest(): void; /** * 使用/切换数据库连接池 */ usePool(configs?: mysql.PoolOptions): mysql.Pool; /** * 创建单纯的数据库连接,使用默认数据库 */ exeSqlOfBaseConnection(sql: string, datas?: any[]): Promise; /** * 使用连接池-执行sql语句 */ poolExeSql(sql: string, isClose?: boolean, datas?: any[]): Promise; /** * 使用连接池-执行sql安全查询语句Safe */ poolExeSqlSafe(sql: string, datas?: any[][], con?: TPoolConnection): Promise; /** * 添加数据 * @param tb 表名称/表配置信息对象 * @param datas 新数据 * @param con 使用外部sql连接对象,常在事务管理中使用该参数 * @param injectFn 可在该函数中拦截并插入公共字段数据 */ add(tb: string | IBaseTable, datas: Array, con?: TPoolConnection, rowIntercept?: TinterceptFn): Promise<{ affectedRows: number; insertId: number; } | undefined>; delete(tb: string | IBaseTable, conditions: Icondition[], con?: TPoolConnection): Promise<{ fieldCount: number; affectedRows: number; } | undefined>; update(tb: string | IBaseTable, uDatas: IupdateConfig[], conditions?: Icondition[], con?: TPoolConnection): Promise<{ affectedRows: number; info: string; changedRows: number; } | undefined>; /** * 分页查询,并查询总条数 * @param tb * @param conditions 条件? * @param skeys 参与查询的字段? * @param limits 分页配置? * @param orders 排序配置? 如果只设置k,默认按升序排序 */ list(tb: string | IBaseTable, conditions?: Icondition[], skeys?: string[], limits?: IlimitCondition | null, orders?: IorderCondition[]): Promise<{ total: number; records: Array; } | undefined>; /** * 按条件查询-不查询总条数 * @param tb * @param conditions 条件? * @param skeys 参与查询的字段? * @param limits 分页配置? * @param orders 排序配置? 如果只设置k,默认按升序排序 */ select(tb: string | IBaseTable, conditions?: Icondition[], skeys?: string[], limits?: IlimitCondition | null, orders?: IorderCondition[]): Promise | undefined>; /** * 按条件查询单条数据 * @param tb * @param conditions 条件? * @param skeys 参与查询的字段? * @param orders 排序配置? 如果只设置k,默认按升序排序 * @returns * - data 数据 * - isUnique 是否唯一 */ find(tb: string | IBaseTable, conditions?: Icondition[], skeys?: string[], orders?: IorderCondition[]): Promise<{ data: T; isUnique: boolean; } | undefined>; /** * 解析sql结果集 mysql.QueryResult */ parseResult(res: any): T | undefined; /** * 判断DDl操作结果是否成功 */ parseDDLResult(res: any): boolean; /** * 判断DML操作结果是否成功 */ parseDMLResult(res: any): boolean; /** * 关闭连接池 */ close(): void; /** * 查看最近的错误信息 */ look_err(): void; log_info(msg: string, tag?: string): void; private log_err; /** * 使用事务管理sql */ transaction(operation: (con: TPoolConnection) => Promise): Promise; }