Android:SQLite数据库。我们需要创造它吗?

时间:2011-07-12 16:20:56

标签: android sqlite

我一直在阅读有关使用sqlite数据库的一些教程,他们似乎都在应用程序的第一次运行时创建了一个新的数据库,表等。这有必要吗?如果我在安装应用程序时已经在资产文件夹中放置了预构建的数据库,该怎么办?我是否可以简单地打开与所述数据库的连接并开始使用其信息,或者是否有特定原因每个人都想在首次启动时使用sql创建它?

4 个答案:

答案 0 :(得分:2)

这个问题经常出现。尝试使用本教程在Android上使用现有数据库: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

答案 1 :(得分:1)

  1. 您不能将位于资源文件夹中的数据库文件直接用作SQLite数据库,因为此文件不是通用文件系统中的常用文件。例如。你只能只读访问它。因此,唯一的选择是将这些数据库从assets文件夹复制到设备的文件系统。
  2. 首次处理数据库创建并访问它时,会有特殊的帮助程序类SQLiteOpenHelper。阅读它here。具体来看SQLiteOpenHelper.onCreate() - 应该在哪里创建数据库(或从资产文件夹中复制,如你的情况)

答案 2 :(得分:0)

自从我上次使用SQLite数据库(在Android中)以来已经有一段时间了,但我相信当他们编写CREATE语句时,他们总是使用IF NOT EXISTS条件(即{{1} }})。

我不知道您将使用SQLite,但我相信他们在Android中这样做“只是为了确保”。也就是说,如果是用户第一次运行应用程序,则必须首先创建DB / Tables ,否则应用程序将变为疯狂。否则,它们(可能)已经创建,并且这种情况将由CREATE (DATABASE|TABLE) IF NOT EXISTS...子句处理,它们只是继续并与现有数据库建立连接。双赢。

(如果由于某种原因,用户不是第一次使用该应用程序并且数据库不存在,那么它将再次创建。但这显然不是吗?;))

答案 3 :(得分:0)

如果您只是链接到预先存在的数据库,它将不会绑定到您的系统。所以可能会有失败。首次运行时创建数据库是使用db的最合适方式。