如何在 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.
...
上面的语句会做什么?
它会创建一个数据库还是会打开一个位于www
或asset
文件夹中的数据库?
我可以在我想要的任何文件夹中创建数据库吗?
没有,我在哪里找到了明确的答案。这就是我在***中问这个的原因。
【问题讨论】:
【参考方案1】:我以前有时也遇到过同样的问题。您需要根据文档进行所有设置。之后,如果您使用createFromLocation
提供database.db
的位置,那么您必须创建一个空数据库文件并将其手动粘贴到资产中,如果您不想手动创建,那么您可以简单地使用SQLite.openDatabase(name : "testDB")
它将自己创建一个数据库作为提供的名称。希望对您有所帮助,请告诉我它是否有效。
【讨论】:
我最初有name : "testDB", createFromLocation : 1
,而且很成功。然后我将资产中的文件名更改为testDB1
& 然后name : "testDB1", createFromLocation : 1
。我清除了应用程序数据并重新运行项目。然后它抛出了error cannot open database
。内部发生的事情令人困惑。
我只需要知道。我是否可以在特定文件夹上创建数据库。并且还要填充数据,为什么我们需要针对 ios 和 android 使用不同的步骤。我来自 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 创建数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 docker compose 中使用 sqlite3
如何在 react-router 中以编程方式进行服务器端路由?
如何将 React 组件分离到不同的文件中以使其正常工作并避免 TypeErrors?