You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Android中如何使用预填充SQLite数据库?

React Native SQLite 数据库文件放置与连接问题

.db 文件放置位置

  • Android:将.db文件放入android/app/src/main/assets目录(若assets目录不存在,手动创建即可)。
  • iOS:打开Xcode项目,将.db文件拖拽到项目结构中,确保勾选对应的App Target,让文件被打包进App的主Bundle。

数据库连接的正确配置(附修正代码)

你提供的代码无法运行主要是因为location和createFromLocation参数配置错误,以下是修正后的代码及关键说明:

import SQLite from 'react-native-sqlite-storage';

// 初始化数据库连接
const db = SQLite.openDatabase({
  name: 'mydb.db', // 需与assets/Bundle中的数据库文件名完全一致
  createFromLocation: '~mydb.db', // 兼容Android/iOS:Android会自动读取assets,iOS读取Bundle中的文件
  location: 'default' // 使用默认存储位置,无需手动指定绝对路径
}, () => {
  console.log('数据库连接成功');
}, (error) => {
  console.error('数据库连接失败:', error);
});

// 执行查询操作
db.transaction((tx) => {
  tx.executeSql('SELECT * FROM user_table', [], (tx, results) => {
    const len = results.rows.length;
    for (let i = 0; i < len; i++) {
      console.log(results.rows.item(i));
    }
  }, (tx, error) => {
    console.error('查询执行失败:', error);
    return false; // 触发事务回滚
  });
});

export default db;

关键错误修正点

  1. location参数:原代码填写了绝对路径,这是错误的。使用'default'让库自动处理不同平台的存储路径即可。
  2. createFromLocation参数:Android中1代表从assets目录读取,但iOS需要用~文件名的格式指定Bundle中的文件,使用'~mydb.db'可兼容双平台。
  3. 文件名一致性:name参数必须和你放置的.db文件名完全一致(包括.db后缀)。
  4. 添加错误回调:新增连接和查询的错误回调,方便快速定位问题。

内容的提问来源于stack exchange,提问作者Aditya Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:52:24