示例代码
在使用 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);注意事项
- 数据库连接: 确保在程序执行期间,数据库连接是有效的。通常建议在程序结束时,明确关闭数据库连接。
- 错误处理: 在执行 SQL 操作时,添加适当的错误处理机制,以便及时捕获和处理可能出现的异常。
- 性能优化: 对于大量数据操作,可以考虑使用事务来提高效率。例如,在插入大量记录时,可以将插入操作放入一个事务中。
- 安全性: 使用参数化查询以防止 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');
})();