Tauri应用开发实践指南(5)—Tauri 集成本地数据库

Tauri集成本地数据库:tauri-plugin-sql-api方案

本文首发于微信公众号:前端徐徐。欢迎关注,获取更多前端技能分享。
在这里插入图片描述

前言

Tauri 是一个构建跨平台桌面应用程序的框架,利用 Web 技术构建前端,并使用 Rust 构建后端。它以其小巧的体积和高性能受到开发者的欢迎。在开发过程中,我们常常需要数据本地持久化, 所以会需要与本地数据库进行交互 。

方案比较

在 Tauri 中集成本地数据库有多种方案,常见的包括:

  1. SQLite 通过直接绑定
  2. 使用第三方数据库库
  3. Tauri 插件:tauri-plugin-sql-api

1. SQLite 通过直接绑定

优点:

  • 直接控制:可以完全掌控数据库的操作和配置。
  • 轻量级:SQLite 非常适合桌面应用,文件存储简单。

缺点:

  • 复杂性:需要手动处理所有数据库连接、查询和事务。
  • 安全性:需要自行管理数据库文件的访问权限。

2. 使用第三方数据库库

优点:

  • 功能丰富:第三方库通常提供丰富的功能和更好的文档支持。
  • 社区支持:很多库有活跃的社区,能够快速获取帮助。

缺点:

  • 依赖管理:需要处理额外的依赖管理和库更新。
  • 体积增加:引入额外的库可能会增加应用的体积。

3. Tauri 插件:tauri-plugin-sql-api

优点:

  • 集成方便:专为 Tauri 设计的插件,易于集成。
  • 多数据库支持:支持 SQLite、MySQL 和 PostgreSQL。
  • 安全性:通过 Tauri 的安全模型,确保数据库操作的安全性。

缺点:

  • 功能限制:相比直接使用数据库库,插件可能有一些功能限制。

综合考虑,我们选择 tauri-plugin-sql-api 作为集成本地数据库的方案。它的集成简单、支持多种数据库类型,并且与 Tauri 框架深度整合,能够有效地提升开发效率和安全性。

使用 tauri-plugin-sql-api 集成本地数据库

此插件要求 Rust 版本至少为 1.65。

我们推荐以下三种通用的安装方法:

  1. 使用 crates.io 和 npm(最简单,但需要信任我们的发布流程是否正常)
  2. 从 GitHub 上直接拉取源代码,使用 git 标签/修订哈希(最安全)
  3. 在你的 Tauri 项目中使用 git 子模块安装这个仓库,然后使用文件协议来引入源代码(最安全,但使用起来不方便)

安装核心插件

在你的 Cargo.toml 文件中添加以下内容:

src-tauri/Cargo.toml

toml
复制代码
[dependencies.tauri-plugin-sql]
git = "https://github.com/tauri-apps/plugins-workspace"
branch = "v1"
features = ["sqlite"] # 或者 "postgres", 或 "mysql"

安装 JavaScript 依赖

你可以使用你喜欢的 JavaScript 包管理器来安装:

注意:由于大多数 JavaScript 包管理器无法从 git 单仓库安装包,我们提供了每个插件的只读镜像。这使得安装选项 2 更加方便使用。

pnpm add https://github.com/tauri-apps/tauri-plugin-sql#v1
# 或
npm add https://github.com/tauri-apps/tauri-plugin-sql#v1
# 或
yarn add https://github.com/tauri-apps/tauri-plugin-sql#v1

编写核心代码

DatabaseService

构建db核心类,初始化DB,这里只是做的key-value的表

import Database from "tauri-plugin-sql-api";
import {
   
   ENV_MODE} from "@/utils/const"

class DatabaseService {
   
   
  private db!: Database;
  private dbReady: Promise<void>;

  constructor() {
   
   
    this.dbReady = this.initDatabase();
  }

  private async initDatabase() {
   
   
    try {
   
   
      
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值