当前位置: 首页 > news >正文

如何在React Native移动应用中轻松集成本地数据库:React Native SQLite Storage完整指南

如何在React Native移动应用中轻松集成本地数据库:React Native SQLite Storage完整指南

【免费下载链接】react-native-sqlite-storageFull featured SQLite3 Native Plugin for React Native (Android and iOS)项目地址: https://gitcode.com/gh_mirrors/re/react-native-sqlite-storage

React Native SQLite Storage是一个功能全面的SQLite3原生插件,专为React Native打造,支持Android(经典和原生模式)、iOS和Windows平台。本文将为你提供一个简单快速的入门指南,帮助你在移动应用中轻松集成本地数据库功能。

🚀 为什么选择React Native SQLite Storage?

React Native SQLite Storage提供了以下核心优势:

  • 跨平台支持:iOS和Android通过相同的JavaScript API实现
  • 多种操作模式:Android支持纯Java和原生模式
  • 完整的SQL事务支持
  • 灵活的API:支持普通回调或Promises
  • 预填充数据库导入功能:可从应用程序包和沙箱导入
  • Windows平台支持:回调API与iOS和Android保持一致

💾 安装React Native SQLite Storage

首先,使用npm安装包:

npm install --save react-native-sqlite-storage

iOS平台配置

对于React Native 0.60及以上版本,只需运行:

cd ios && pod install && cd ..

对于React Native 0.59及以下版本,可使用CocoaPods或手动链接:

使用CocoaPods

在ios项目子目录中的Podfile添加:

pod 'React', :path => '../node_modules/react-native' pod 'react-native-sqlite-storage', :path => '../node_modules/react-native-sqlite-storage'

然后刷新Pods安装:

pod install
手动链接

如果自动链接不起作用,可以手动将SQLite Xcode项目作为依赖项目拖入你的React Native Xcode项目,并配置依赖库。配置完成后,你的项目应如下所示:

Android平台配置

对于React Native 0.60及以上版本,若要使用设备SQLite,无需额外步骤。如果希望使用库自带的SQLite(包含FTS5支持),需在react-native.config.js中添加配置。

对于React Native 0.59及以下版本,需要更新Gradle设置和应用模块Gradle构建脚本,并注册React包。

📱 基本使用方法

启用Promises

要启用Promises支持,运行:

SQLite.enablePromise(true);

打开数据库

// 基本用法 var db = SQLite.openDatabase("test.db", "1.0", "Test Database", 200000, openCB, errorCB); // 高级配置(iOS位置选择) SQLite.openDatabase({name: 'my.db', location: 'default'}, successcb, errorcb);

location选项(仅iOS):

  • default:Library/LocalDatabase子目录(iTunes不可见,iCloud不备份)
  • Library:Library子目录(iCloud备份,iTunes不可见)
  • Documents:Documents子目录(iTunes可见,iCloud备份)

执行SQL操作

db.transaction((tx) => { tx.executeSql('SELECT * FROM Employees', [], (tx, results) => { console.log("Query completed"); var len = results.rows.length; for (let i = 0; i < len; i++) { let row = results.rows.item(i); console.log(`Employee name: ${row.name}`); } }); });

📂 导入预填充数据库

iOS平台设置步骤

  1. 创建'www'文件夹
  2. 将预填充的数据库文件复制到'www'文件夹
  3. 在XCode中添加文件到项目,确保选择"Create Folder References"选项:

  1. 调整openDatabase调用:
// 默认方式 - 文件夹名为www且数据文件与数据库名相同 SQLite.openDatabase({name : "testDB", createFromLocation : 1}, okCallback,errorCallback); // 自定义文件夹或文件名 SQLite.openDatabase({name : "testDB", createFromLocation : "~data/mydbfile.sqlite"}, okCallback,errorCallback);

验证链接库

确保链接的框架和库包含必要的SQLite组件:

🔗 附加其他数据库

SQLite3提供了将另一个数据库附加到现有数据库实例的功能,实现跨数据库JOIN:

let dbMaster, dbSecond; dbSecond = SQLite.openDatabase({name: 'second'}, (db) => { dbMaster = SQLite.openDatabase({name: 'master'}, (db) => { dbMaster.attach( "second", "second", () => console.log("Database attached successfully"), () => console.log("ERROR")) }, (err) => console.log("Error on opening database 'master'", err) ); }, (err) => console.log("Error on opening database 'second'", err) );

查询时使用别名访问附加数据库的表:

SELECT * FROM user INNER JOIN second.subscriptions s ON s.user_id = user.id

📝 总结

React Native SQLite Storage为React Native应用提供了强大的本地数据库解决方案。通过本文的指南,你可以轻松地在iOS和Android应用中集成SQLite功能,实现数据的本地存储和管理。无论是小型应用还是复杂的企业级应用,React Native SQLite Storage都能满足你的本地数据存储需求。

要开始使用,只需通过以下命令克隆仓库:

git clone https://gitcode.com/gh_mirrors/re/react-native-sqlite-storage

然后按照本文的步骤进行安装和配置,即可快速在你的React Native应用中使用SQLite数据库功能。

【免费下载链接】react-native-sqlite-storageFull featured SQLite3 Native Plugin for React Native (Android and iOS)项目地址: https://gitcode.com/gh_mirrors/re/react-native-sqlite-storage

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/741018/

相关文章:

  • 如何用 SQLSync 快速构建企业级 Figma 式协作应用:完整实战指南
  • 如何扩展和定制markdown-pdf转换流程:开发者必备指南
  • 半监督学习终极指南:用pretrained-models.pytorch快速训练高精度模型
  • 从‘云’的图案到你的手机:一文读懂云计算背后的网络、虚拟化与数据中心技术栈
  • 对比直接使用官方API体验Taotoken在计费透明性与用量观测上的优势
  • 终极视频转PPT指南:3分钟实现智能内容提取的完整方案
  • ASP 发送电子邮件
  • Navi项目实战:构建企业级React应用的路由架构
  • 告别命令行!用VSCode图形化调试嵌入式Linux程序(基于gdbserver)
  • Seismic:专为学习型稀疏向量设计的高性能Rust搜索引擎
  • 企业知识库迁移的终极方案:如何用feishu-doc-export实现97.9%效率提升
  • C语言跨平台编译失败?92%的适配问题源于这4个被忽视的ABI检查项(附GCC/Clang/MSVC对照速查表)
  • 如何快速掌握Money Ruby库:理解银行系统和汇率存储的终极指南
  • 别再死记硬背了!用Python+Jupyter Notebook图解CRC-8校验原理(以SAE J1850为例)
  • 3步高效提取Godot游戏资源:实用解包指南与进阶技巧
  • 小红书数据采集终极指南:5步实现Python自动化爬虫的完整解决方案
  • 深入Sauron架构:理解Elm架构在Rust中的实现原理
  • MiniMax-M1开源大模型:混合注意力与闪电机制解析与实战部署
  • G-Helper终极指南:3步解锁华硕笔记本隐藏性能,告别臃肿控制软件
  • 软考 系统架构设计师历年真题集萃(249)
  • LGSideMenuController与UINavigationController完美整合指南
  • 酷安UWP:在Windows桌面端重新定义社区体验的智能客户端解决方案
  • 告别格式壁垒:手把手教你用CAD Exchanger SDK + Eyeshot为.NET应用集成多CAD格式可视化
  • OAID、IP、User-Agent... 广告归因到底该用哪个匹配?一次讲清5种匹配方式的优缺点与选型指南
  • 5月2日成都地区包钢产热轧H型钢(1998-Q355B;100-1000mm)批发报价 - 四川盛世钢联营销中心
  • 终极OpenDrop指南:如何在Linux上使用开源AirDrop实现
  • RTOS内存碎片率>68%?资深架构师首次公开C语言动态内存池三级回收算法(含可移植源码)
  • Swiftcord视图模型设计:MVVM架构在SwiftUI中的完美实践
  • RSS Item 元素:深入解析与使用指南
  • 终极指南:如何使用Docker容器化部署hotel及高效管理应用进程