如何在 sqlite3 中以 react native 创建数据库

Posted

技术标签:

【中文标题】如何在 sqlite3 中以 react native 创建数据库【英文标题】:how to create database in sqlite3 in react native 【发布时间】:2020-12-07 06:37:36 【问题描述】:

我在此链接https://github.com/andpor/react-native-sqlite-storage 中浏览了所有详细信息。我对他们的文档感到困惑。

 ...
  1.SQLite.openDatabase(name : "testDB", createFromLocation : 1, okCallback,errorCallback);
  // default - if your folder is called www and data file is named the same as the dbName - testDB in this example
  2.SQLite.openDatabase(name : "testDB", createFromLocation : "~data/mydbfile.sqlite", okCallback,errorCallback);
  // if your folder is called data rather than www or your filename does not match the name of the db
  3.SQLite.openDatabase(name : "testDB", createFromLocation : "/data/mydbfile.sqlite", okCallback,errorCallback);
  // if your folder is not in app bundle but in app sandbox i.e. downloaded from some remote location.
  ...

上面的语句会做什么? 它会创建一个数据库还是会打开一个位于wwwasset 文件夹中的数据库? 我可以在我想要的任何文件夹中创建数据库吗?

没有,我在哪里找到了明确的答案。这就是我在***中问这个的原因。

【问题讨论】:

【参考方案1】:

我以前有时也遇到过同样的问题。您需要根据文档进行所有设置。之后,如果您使用createFromLocation 提供database.db 的位置,那么您必须创建一个空数据库文件并将其手动粘贴到资产中,如果您不想手动创建,那么您可以简单地使用SQLite.openDatabase(name : "testDB") 它将自己创建一个数据库作为提供的名称。希望对您有所帮助,请告诉我它是否有效。

【讨论】:

我最初有name : "testDB", createFromLocation : 1,而且很成功。然后我将资产中的文件名更改为testDB1 & 然后name : "testDB1", createFromLocation : 1。我清除了应用程序数据并重新运行项目。然后它抛出了error cannot open database。内部发生的事情令人困惑。 我只需要知道。我是否可以在特定文件夹上创建数据库。并且还要填充数据,为什么我们需要针对 iosandroid 使用不同的步骤。我来自 nativescript 背景,因为它使用相同的代码,所以这两个平台都非常容易。 @rock 如果您使用预填充的数据库,那么您必须指定数据库的位置,也使用特定的文件夹,如果您没有预填充的数据库,则不需要提供位置.对于预填充,试试这个minimal reproducible example (aboutreact.com/…),简单来说试试这个minimal reproducible example (aboutreact.com/example-of-sqlite-database-in-react-native) @rock 在链接命令后重新运行项目,即react-native link,以防更改任何组件的属性 我正在使用 android 并且位置不考虑根据文档

以上是关于如何在 sqlite3 中以 react native 创建数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React js 中以表格格式显示 API 响应?

如何在 docker compose 中使用 sqlite3

如何在 react-router 中以编程方式进行服务器端路由?

如何将 React 组件分离到不同的文件中以使其正常工作并避免 TypeErrors?

如何使用命令行工具 sqlite3 浏览内存中的 SQLite 数据库

在 React-Router v4 中以编程方式导航