我一直在经历一些关于使用sqlite数据库的教程,他们似乎都在应用程序的第一次运行时创建了一个新的数据库,表等。这是必要的吗?安装应用程序时,如果我已经在资产文件夹中安装了预建数据库,该怎么办?我能不能简单地打开与上述数据库的连接并开始使用它的信息,或者是否有一个特定的原因,每个人都希望在首次启动时使用sql创建它?Android:SQLite数据库。我们需要创建它吗?
回答
这个问题经常出现。试试这个教程在Android上使用现有的数据库: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
它已经相当一段时间,因为我最后一次使用SQLite数据库(在Android设备)工作,但我相信,当他们写CREATE
声明,他们总是与IF NOT EXISTS
条件这样做(即,CREATE (DATABASE|TABLE) IF NOT EXISTS...
)。
我不知道你会用什么SQLite,但我相信他们在Android中这样做“只是为了确保”。也就是说,如果用户第一次运行该应用程序,则必须首先创建DB /表,否则应用程序会变得焦躁不安。否则,它们(可能)已经创建好了,这种情况将由IF NOT EXISTS
子句处理,并且它们将继续并与现有数据库建立连接。双赢。
(如果由于某种原因,它不是用户第一次使用的应用程序和数据库是不存在的,它只是再次创建但是,这显然不是它。?))
如果你只是与预先存在的数据库链接,它不会绑定到你的系统。所以可能会有失败。在第一次运行时创建db是使用db最合适的方式。
有道理,但在我目前的特定情况下,我有一个数据库,每个数据库有三个不同的表格,每个表格有几百行。在第一次运行时将所有信息添加到数据库似乎有很多编码。在我的情况下,在外部编辑器中管理我的数据库会更有意义,只需将它添加到应用程序中,或者将数据库绑定到应用程序仍然很重要?如果从头开始创建数据库是最好的办法,我当然会遵循这种心态,但我只想确保我不会为自己创造不必要的工作。 – ryandlf
- 您不能使用位于资产文件夹中的数据库文件直接作为SQLite数据库,因为此文件不会位于通用文件系统中的普通文件。例如。你只能只读访问它。所以唯一的选择是将这些数据库从assets文件夹复制到设备的文件系统。
- 为了第一次处理数据库创建并访问它,有特殊的帮助类
SQLiteOpenHelper
。阅读关于它here。具体查看SQLiteOpenHelper.onCreate()
- 应该在哪里创建数据库(或者像您的情况那样从资产文件夹复制)
- 1. 我们需要创建CORS吗?
- 2. [myproject] .dll.config文件 - 我需要它们吗?
- 3. 图数据库:为什么我们需要它?
- 4. 数据库是我们需要的唯一后端吗?
- 5. 数据库正常化我需要它
- 6. QSharedPointer,如何传递它们,我需要它们吗?
- 7. Java - 我需要一个数据库吗?
- 8. 需要数据库创建帮助
- 9. 如果我使用LoadIconWithScaleDown创建它,我需要调用DestroyIcon吗?
- 10. 我们需要指针吗?
- 11. Android:SQLite数据库的Getter
- 12. Android:Sqlite数据库错误
- 13. Android:SQLite数据库大小
- 14. 我们真的需要在Java RMI中创建存根吗?
- 15. 创建链表时,我们不需要创建实际节点吗?
- 16. Android ListView:我需要创建另一个类来使用它吗?
- 17. PayPal:pixel.gif - 我需要它吗?
- 18. MVC3 StorageSessionStateProvider - 我需要它吗?
- 19. 我需要在Java中使用Java创建新数据库
- 20. 如何在Java中创建类存储库,我真的需要它吗?
- 21. 它需要连接到数据库,但它不需要。
- 22. WSS数据库:它们是否需要TFS才能运行?
- 23. 为什么我们在创建存储库时需要创建xxxCustom和xxxImpl类?
- 24. 在MVC中建模数据库实体 - 如何创建它们?
- 25. 我需要Codeigniter的库来创建Facebook应用程序吗?
- 26. 什么是序列(数据库)?我们什么时候需要它?
- 27. 当我们创建表时,我们是否需要指定关系的基数?
- 28. PHP OOP数据库类 - 它真的需要吗?
- 29. 正确的数据库?它需要改变吗?
- 30. 数据库锁需要事务吗?
伟大的教程。感谢您的链接! @ barmaley是正确的,不是从应用程序中创建的数据库是只读的,但上面的链接描述了如何将该数据库复制到系统文件中以便可以使用。 – ryandlf