Nodejs MySQL客户端插件mysql2的使用

Nodejs MySQL客户端插件mysql2的使用
mysql2 是 Node.js 中一个高性能的 MySQL 客户端库,它提供了比原生 mysql 模块更好的性能和更多的功能。下面是如何安装和使用 mysql2 的一些基本示例。

1. 安装 mysql2

首先,你需要在你的项目中安装 mysql2。你可以通过 npm 来安装:

npm install mysql2

2. 连接到数据库

以下是一个简单的示例,展示了如何连接到 MySQL 数据库:

const mysql = require('mysql2/promise');

async function getConnection() {
    const connection = await mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'yourpassword',
        database: 'testdb'
    });
    return connection;
}

(async () => {
    try {
        const conn = await getConnection();
        console.log("Connected to the database!");
        // 在这里执行你的查询
        await conn.end(); // 关闭连接
    } catch (error) {
        console.error("Error connecting to the database:", error);
    }
})();

3. 执行 SQL 查询

你可以使用 .query() 方法来执行 SQL 查询:

(async () => {
    try {
        const conn = await getConnection();
        const [rows, fields] = await conn.query('SELECT * FROM users');
        console.log(rows);
        await conn.end();
    } catch (error) {
        console.error("Error executing query:", error);
    }
})();

4. 使用预处理语句

为了防止 SQL 注入攻击,推荐使用预处理语句:

(async () => {
    try {
        const conn = await getConnection();
        const [rows, fields] = await conn.execute('SELECT * FROM users WHERE id = ?', [5]);
        console.log(rows);
        await conn.end();
    } catch (error) {
        console.error("Error executing query:", error);
    }
})();

5. 事务处理

mysql2 也支持事务处理:

(async () => {
    try {
        const conn = await getConnection();
        await conn.beginTransaction();

        try {
            await conn.query('INSERT INTO users (name) VALUES (?)', ['Alice']);
            await conn.query('INSERT INTO users (name) VALUES (?)', ['Bob']);
            await conn.commit();
            console.log("Transaction committed");
        } catch (error) {
            await conn.rollback();
            console.error("Transaction rolled back due to an error:", error);
        }

        await conn.end();
    } catch (error) {
        console.error("Error in transaction:", error);
    }
})();

以上就是使用 mysql2 的基本步骤和一些常见操作。希望这对你有所帮助!


3 回复

当然,使用mysql2这个强大的Node.js MySQL客户端插件可以让数据库操作变得轻松愉快!首先,你需要通过npm安装它:

npm install mysql2

接下来,让我们来点“魔法”吧。想象一下,你正在构建一个神秘的咒语库(数据库),而你需要召唤一些咒语(查询数据)。

const mysql = require('mysql2/promise'); // 使用promise版本,让异步调用更顺畅

// 创建连接池,就像创建了一个存放咒语的大箱子
const pool = mysql.createPool({
  host: '你的数据库地址',
  user: '你的用户名',
  password: '你的密码',
  database: '你的数据库名'
});

async function castSpell() { // 咒语函数
  const [rows] = await pool.query('SELECT * FROM spells'); // 查询所有咒语
  console.log(rows);
}

castSpell().catch(err => console.error(err));

现在,当你调用castSpell()时,它会打开箱子(连接数据库),找到所有的咒语(执行查询),然后把它们展示给你看。是不是很酷?记得关闭连接或妥善管理连接池哦!


mysql2 是 Node.js 中一个功能强大且性能优秀的 MySQL 客户端库。它不仅提供了与原生 mysql 模块相同的 API,还增加了对连接池、流式查询结果等特性的支持。

1. 安装

首先,你需要安装 mysql2 库。可以通过 npm 来安装:

npm install mysql2

2. 基本用法

下面是一个基本的示例,展示了如何使用 mysql2 连接到数据库并执行一个简单的查询:

const mysql = require('mysql2');

// 创建连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'yourusername',
  password: 'yourpassword',
  database: 'yourdatabase'
});

// 打开连接
connection.connect(error => {
  if (error) {
    console.error('Error connecting to the database:', error);
    return;
  }
  console.log('Connected to the database!');
  
  // 执行查询
  connection.query('SELECT * FROM users', (err, results, fields) => {
    if (err) {
      console.error('Error executing query:', err);
      return;
    }
    
    console.log('Query results:', results);

    // 关闭连接
    connection.end();
  });
});

3. 使用Promise风格的API

mysql2 也支持使用 Promises,这使得异步代码更加清晰易读:

const mysql = require('mysql2/promise');

async function getUsers() {
  const connection = await mysql.createConnection({
    host: 'localhost',
    user: 'yourusername',
    password: 'yourpassword',
    database: 'yourdatabase'
  });

  try {
    const [rows] = await connection.execute('SELECT * FROM users');
    console.log(rows);
  } catch (err) {
    console.error('Error executing query:', err);
  }

  // 自动关闭连接
  await connection.end();
}

getUsers();

4. 连接池

使用连接池可以更高效地管理多个数据库连接:

const mysql = require('mysql2/promise');

async function usePool() {
  const pool = mysql.createPool({
    host: 'localhost',
    user: 'yourusername',
    password: 'yourpassword',
    database: 'yourdatabase',
    waitForConnections: true,
    connectionLimit: 10,
    queueLimit: 0
  });

  const [rows] = await pool.execute('SELECT * FROM users WHERE id = ?', [1]);
  console.log(rows);

  // 不需要手动关闭连接,连接池会自动管理
}

usePool();

这些是使用 mysql2 的一些基础和高级特性。你可以根据项目需求进一步探索其文档和特性。

mysql2 是 Node.js 中一个高性能的 MySQL 客户端库。首先,你需要通过npm安装它:

npm install mysql2

然后,你可以这样使用它来连接数据库并执行查询:

const mysql = require('mysql2/promise');

async function queryDatabase() {
    const connection = await mysql.createConnection({
        host: 'localhost',
        user: 'root',
        database: 'testdb'
    });

    const [rows, fields] = await connection.execute('SELECT 1');
    console.log(rows);
}

queryDatabase();

这个例子展示了如何创建连接、执行查询并处理结果。mysql2还支持Promise,使异步操作更简洁。

回到顶部