better-sqlite3-typescript 用于 TypeScript:完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

better-sqlite3-typescript 用于 TypeScript:完整指南及示例

\n\n

在 TypeScript 开发中,经常需要在不部署完整数据库的情况下进行本地数据存储。SQLite 是此类任务的理想解决方案:它是一种嵌入式关系型数据库,无需独立服务器即可运行。然而,标准的 better-sqlite3 库是用 JavaScript 编写的,不提供内置的类型定义。这时 better-sqlite3-typescript 就派上了用场——它是一个封装层,在 better-sqlite3 的同步 API 之上添加了严格的 TypeScript 类型支持。

\n\n

该库允许您编写类型安全的代码来操作 SQLite,在 IDE 中获得自动补全功能,在编译阶段进行类型检查,并减少运行时错误。您既能享受同步数据库访问的所有优势(简单、可预测、高性能),又能获得 TypeScript 类型系统的强大能力。

\n\n

在本文中,我们将详细介绍安装、主要方法,提供实际示例,并给出性能建议。无论您是新手还是经验丰富的开发者,只要希望在 TypeScript 项目中高效使用 SQLite,本文都将对您有所帮助。

\n\n

安装

\n\n

要安装该库,请在项目终端中执行以下命令:

\n\n
npm install better-sqlite3-typescript better-sqlite3
\n\n

同时还需要为 TypeScript 安装类型定义:

\n\n
npm install -D @types/better-sqlite3
\n\n

安装后,您可以在项目中导入该库:

\n\n
import Database from 'better-sqlite3-typescript';
\n\n

快速入门

\n\n

一个创建数据库、创建表并插入数据的最小工作示例:

\n\n
import Database from 'better-sqlite3-typescript';\n\n// 创建或打开数据库\nconst db = new Database('my_database.db');\n\n// 创建表\ndb.exec(`\n  CREATE TABLE IF NOT EXISTS users (\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\n    name TEXT NOT NULL,\n    email TEXT UNIQUE NOT NULL,\n    age INTEGER\n  )\n`);\n\n// 插入数据\nconst insert = db.prepare('INSERT INTO users (name, email, age) VALUES (?, ?, ?)');\ninsert.run('Alice', 'alice@example.com', 30);\ninsert.run('Bob', 'bob@example.com', 25);\n\n// 读取数据\nconst select = db.prepare('SELECT * FROM users');\nconst users = select.all();\nconsole.log(users);\n\n// 关闭连接\ndb.close();
\n\n

这段代码将在当前目录下创建 my_database.db 文件,创建 users 表,添加两个用户,并将它们输出到控制台。

\n\n

主要方法和函数

\n\n

让我们来看看该库的关键方法。所有示例均假设您已有一个数据库实例 db。

\n\n

1. new Database(filename, options?)

\n

签名: new Database(filename: string, options?: DatabaseOptions): Database

\n

描述: 创建或打开一个 SQLite 数据库。如果文件不存在,则会创建它。选项允许配置打开模式(只读、内存等)。

\n

示例:

\n
// 打开内存数据库(不保存到磁盘)\nconst memDb = new Database(':memory:');\n\n// 以只读模式打开数据库\nconst readOnlyDb = new Database('data.db', { readonly: true });
\n\n

2. db.prepare(sql)

\n

签名: prepare(sql: string): Statement

\n

描述: 将 SQL 查询编译为预编译语句。返回一个 Statement 对象,可以使用不同参数重复执行。

推荐