Skip to content

mysql2

快速开始

shell
npm install mysql2

封装函数

ts
import mysql from 'mysql2/promise';
import type { RowDataPacket } from 'mysql2/promise';

// 你可以根据实际情况将这些配置放到环境变量或配置文件中
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: '123456',
  database: 'database',
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0,
});

// 获取一个连接
export async function getConnection() {
  const connection = await pool.getConnection();
  return connection;
}

// 释放连接
export function releaseConnection(connection: mysql.PoolConnection) {
  if (connection && typeof connection.release === 'function') {
    connection.release();
  }
}

// 封装执行 SQL 语句的函数
export async function querySql<T extends RowDataPacket[] = RowDataPacket[]>(
  sql: string,
  params?: any[],
): Promise<T> {
  const connection = await getConnection();
  try {
    const [rows] = await connection.query<T>(sql, params);
    return rows;
  } catch (error) {
    console.log(error);
    return error as T;
    // throw error;
  } finally {
    releaseConnection(connection);
  }
}

使用函数

ts
import { querySql } from './database/index';

const res = querySql('select * from user where id = ?', ['1']);
console.log(res);