SQLocal 使用教程

SQLocal 使用教程

sqlocalSQLocal makes it easy to run SQLite3 in the browser, backed by the origin private file system.项目地址:https://gitcode.com/gh_mirrors/sq/sqlocal

项目介绍

SQLocal 是一个开源项目,旨在简化在浏览器中运行 SQLite3 数据库的过程,其数据存储在源私有文件系统中。该项目支持通过参数化语句执行 SQL 命令,并且可以与 Kysely 或 Drizzle ORM 集成,实现类型安全的查询。

项目快速启动

安装

首先,使用包管理器安装 SQLocal 包:

npm install sqlocal
# 或者
yarn add sqlocal
# 或者
pnpm install sqlocal

基本使用

以下是一个简单的示例,展示如何在浏览器中使用 SQLocal 创建表并插入数据:

import { SQLocal } from 'sqlocal';

// 初始化 SQLocal
const sql = new SQLocal('database.sqlite3');

// 创建表
await sql`CREATE TABLE groceries (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)`;

// 插入数据
const items = ['bread', 'milk', 'rice'];
for (let item of items) {
  await sql`INSERT INTO groceries (name) VALUES (${item})`;
}

// 查询数据
const data = await sql`SELECT * FROM groceries`;
console.log(data);
// 输出:
// [ { id: 1, name: 'bread' }, { id: 2, name: 'milk' }, { id: 3, name: 'rice' } ]

应用案例和最佳实践

应用案例

SQLocal 适用于需要在浏览器中进行本地数据存储的场景,例如:

  • 离线应用的数据存储
  • 需要频繁读写的小型数据库应用
  • 前端开发中的数据模拟

最佳实践

  • 使用参数化查询:避免 SQL 注入攻击,确保数据安全。
  • 合理设计数据库结构:根据应用需求设计合适的数据库表结构。
  • 定期备份数据:虽然数据存储在本地,但定期备份可以防止数据丢失。

典型生态项目

SQLocal 可以与以下生态项目集成,提供更强大的功能:

  • Kysely:一个类型安全的 SQL 查询构建器。
  • Drizzle ORM:一个轻量级的 ORM,支持 SQLite。

与 Kysely 集成

import { SQLocalKysely } from 'sqlocal/kysely';
import { Kysely, Generated } from 'kysely';

// 初始化 SQLocalKysely 并传递方言给 Kysely
const { dialect } = new SQLocalKysely('database.sqlite3');
const db = new Kysely<DB>({ dialect });

// 定义你的 schema
type DB = {
  groceries: {
    id: Generated<number>;
    name: string;
  };
};

// 进行类型安全的查询
const data = await db.selectFrom('groceries').select('name').orderBy('name', 'asc').execute();
console.log(data);

与 Drizzle ORM 集成

import { SQLocalDrizzle } from 'sqlocal/drizzle';
import { drizzle } from 'drizzle-orm/sqlite-proxy';
import { sqliteTable, int, text } from 'drizzle-orm/sqlite-core';

// 初始化 SQLocalDrizzle 并传递驱动给 Drizzle
const { driver } = new SQLocalDrizzle('database.sqlite3');
const db = drizzle(driver);

// 定义你的 schema
const groceries = sqliteTable('groceries', {
  id: int('id').primaryKey({ autoIncrement: true }),
  name: text('name').notNull(),
});

// 进行类型安全的查询
const data = await db.select({ name: groceries.name }).from(groceries).orderBy(groceries.name).all();
console.log(data);

通过以上教程,您可以快速上手并深入了解 SQLocal 的使用方法和最佳实践。

sqlocalSQLocal makes it easy to run SQLite3 in the browser, backed by the origin private file system.项目地址:https://gitcode.com/gh_mirrors/sq/sqlocal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时闯虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值