Nodejs node-mysql-sexy-query 友好的 MySQL 查询

Nodejs node-mysql-sexy-query 友好的 MySQL 查询

看上去非常友好!不过效率怎么样?目前用的nodejs-mysql-native,效率比mysql那个模块好

17 回复

Nodejs node-mysql-sexy-query 友好的 MySQL 查询

在 Node.js 中进行数据库操作时,使用一个友好的查询库可以大大简化开发过程。node-mysql-sexy-query 就是一个这样的工具,它使得与 MySQL 数据库的交互更加简单直观。

安装

首先,你需要安装 node-mysql-sexy-query 库。你可以通过 npm 来安装:

npm install node-mysql-sexy-query

基本用法

下面是一个简单的例子,展示如何使用 node-mysql-sexy-query 进行基本的查询操作。

const sexyQuery = require('node-mysql-sexy-query');

// 创建数据库连接
sexyQuery.connect({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'test_db'
});

// 执行一个简单的查询
sexyQuery.query('SELECT * FROM users WHERE id = ?', [1], (err, results) => {
    if (err) throw err;
    console.log(results);
});

// 插入数据
sexyQuery.query('INSERT INTO users (name, email) VALUES (?, ?)', ['John Doe', 'john@example.com'], (err, result) => {
    if (err) throw err;
    console.log(`Inserted with ID: ${result.insertId}`);
});

// 更新数据
sexyQuery.query('UPDATE users SET name = ? WHERE id = ?', ['Jane Doe', 1], (err, result) => {
    if (err) throw err;
    console.log(`Rows affected: ${result.affectedRows}`);
});

// 删除数据
sexyQuery.query('DELETE FROM users WHERE id = ?', [1], (err, result) => {
    if (err) throw err;
    console.log(`Rows deleted: ${result.affectedRows}`);
});

性能对比

关于性能问题,不同的 MySQL 驱动程序可能有不同的表现。node-mysql-sexy-query 的主要优点在于其简洁易用的 API 和友好的语法。如果你更关心性能,那么可以考虑使用 node-mysql-native 或其他更底层的驱动程序,如 mysql2,它们通常会提供更好的性能和更多的功能。

例如,使用 mysql2 库的一个示例:

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

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

    try {
        const [rows] = await connection.execute('SELECT * FROM users WHERE id = ?', [1]);
        console.log(rows);
    } finally {
        await connection.end();
    }
}

queryDatabase();

虽然 mysql2 提供了更好的性能,但它的 API 相对复杂一些。选择哪种库取决于你的具体需求和项目要求。


mysql-sex-query 只是一个sql 生成器,相信移植到mysql-sex-query的成本很低

sex-query 这样的命名不太妥吧?“性查询”? 建议换成 sexy-query 或 cute-query 比较好!仅供参考! BTW:构思不错!

-_-|| 我是想 sexy 的,但是打成了 sex

可以试试sannis的libmysqlclient https://github.com/Sannis/node-mysql-libmysqlclient ;我们也贡献了几个patch,包括利用libuv实现的真正意义上的异步querySend

npm.log里可以看看到底什么原因

好厉害。

挺 sexy 的嘛…

只是作为一个query的话,不太能接受这种连贯接口写sql的…

有性能的相关测试结果吗?

关于page()有个疑问, 我看生成的sql语句 limit 里面的数字始终跟page里定义的对不上号啊

还有关于添加数据,可以成功添加进数据库,但是却执行了console.log(‘添加失败’),id为0

所以现在这个包在npm上叫上叫啥?原名已经找不到了orz

我fork了一個版本,加上mariasql and connection-pool的adapter… https://github.com/Casear/node-mysql-sexy-query

有个问题,要是 长时间不操作mysql,连接就失效了。怎样在下次请求时候重新连接呢?在哪儿处理呢 因为是基于mysql-native的,跟node-mysql不一样啊。

Nodejs node-mysql-sexy-query 友好的 MySQL 查询

node-mysql-sexy-query 是一个用于简化 MySQL 查询操作的库。它提供了一种更友好的 API 来执行 SQL 查询,并且可以提高开发者的生产力。

效率问题

关于效率,不同的 MySQL 库有不同的性能表现。node-mysql-sexy-query 的主要优势在于简化了查询语法,使得开发者可以更快地编写和维护代码。至于效率,这取决于具体的使用场景和数据库操作的复杂性。一般来说,node-mysql-sexy-query 的性能与官方的 mysql 模块相当,但在某些情况下可能会稍逊一筹。如果你对性能有较高要求,可以考虑使用 node-mysql-native 或其他优化过的库。

示例代码

下面是一些使用 node-mysql-sexy-query 的示例代码:

  1. 安装

    npm install node-mysql-sexy-query
    
  2. 连接到数据库

    const { createConnection } = require('node-mysql-sexy-query');
    
    const connection = createConnection({
      host: 'localhost',
      user: 'root',
      password: 'password',
      database: 'test'
    });
    
  3. 执行简单的 SELECT 查询

    connection.query('SELECT * FROM users WHERE id = ?', [1], (err, results) => {
      if (err) throw err;
      console.log(results);
    });
    
  4. 插入数据

    connection.query('INSERT INTO users (name, email) VALUES (?, ?)', ['Alice', 'alice@example.com'], (err, result) => {
      if (err) throw err;
      console.log(`Inserted with ID: ${result.insertId}`);
    });
    
  5. 关闭连接

    connection.end();
    

通过这些简单的例子,你可以看到 node-mysql-sexy-query 提供了更加简洁和直观的 API,从而减少了编码错误的可能性。

回到顶部