示例代码

在使用 better-sqlite3 执行 SQL 语句时,我们可以通过简单的示例来展示如何进行基本的数据库操作,包括创建表、插入数据、查询数据等。以下是一个简要的示例代码:

const Database = require('better-sqlite3');
const db = new Database('example.db');
 
// 创建表
db.exec(`
  CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER
  )
`);
 
// 插入数据
const insert = db.prepare('INSERT INTO users (name, age) VALUES (?, ?)');
insert.run('Alice', 25);
insert.run('Bob', 30);
 
// 查询数据
const selectAll = db.prepare('SELECT * FROM users');
const users = selectAll.all();
 
// 输出结果
console.log(users);

注意事项

  1. 数据库连接: 确保在程序执行期间,数据库连接是有效的。通常建议在程序结束时,明确关闭数据库连接。
  2. 错误处理: 在执行 SQL 操作时,添加适当的错误处理机制,以便及时捕获和处理可能出现的异常。
  3. 性能优化: 对于大量数据操作,可以考虑使用事务来提高效率。例如,在插入大量记录时,可以将插入操作放入一个事务中。
  4. 安全性: 使用参数化查询以防止 SQL 注入攻击。在 better-sqlite3 中,通过 prepare 方法传递参数是推荐的方式。

常见操作

  • 更新数据: 使用 UPDATE 语句来修改现有记录。
const updateUser = db.prepare('UPDATE users SET age = ? WHERE name = ?');
updateUser.run(26, 'Alice');
  • 删除数据: 使用 DELETE 语句来移除不需要的数据。
const deleteUser = db.prepare('DELETE FROM users WHERE name = ?');
deleteUser.run('Bob');
  • 事务处理: 可以通过显式地开始和提交事务来确保一系列操作的原子性。
db.transaction(() => {
  insert.run('Charlie', 28);
  updateUser.run(29, 'Alice');
})();