2011-07-12 32 views
4

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

回答

0

它已经相当一段时间,因为我最后一次使用SQLite数据库(在Android设备)工作,但我相信,当他们写CREATE声明,他们总是与IF NOT EXISTS条件这样做(即,CREATE (DATABASE|TABLE) IF NOT EXISTS...)。

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

(如果由于某种原因,它不是用户第一次使用的应用程序和数据库是不存在的,它只是再次创建但是,这显然不是它。?))

0

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

+0

有道理,但在我目前的特定情况下,我有一个数据库,每个数据库有三个不同的表格,每个表格有几百行。在第一次运行时将所有信息添加到数据库似乎有很多编码。在我的情况下,在外部编辑器中管理我的数据库会更有意义,只需将它添加到应用程序中,或者将数据库绑定到应用程序仍然很重要?如果从头开始创建数据库是最好的办法,我当然会遵循这种心态,但我只想确保我不会为自己创造不必要的工作。 – ryandlf

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