Android使用的SQLite数据库

SQLite允许忽略数据类型,但是,仍然建议在CreateTable语句中指定数据类型,因为数据类型有利于增强程序的可读性。SQLite支持常见的数据类型,如VARCHAR、NVARCHAR、TEXT、INTEGER、FLOAT、BOOLEAN、CLOB、BLOB、TIMESTAMP、NUMERIC、VARYING、CHARACTER、NATl0NAI,VARYINGCHARACTER。

Android设备将发布时会有一个内部的SQLite数据库。这个数据库的目的是允许用户和开发者一个可以在活动中储存信息的地方。

如果你用过Microsoft SQL服务器或者SQLite,使用Andorid的SQLite数据库的结构和过程对你将不会陌生。不管你有多少的经验,这个部分将涵盖所有需要创建和使用全功能SQlite数据库的技能。你将要在Android模拟器上创建一个数据库。要实现这个,你需要进入Android SDK命令行编辑器工具并使用shell命令来进入Android服务器。

提示

参考第三章来重拾你的记忆关于路径声明和使用命令行工具

一旦你进入服务器,你需要导航到数据库的位置。所有的Android SQLite数据库的位置是在data/data/<package>/
databases 目录。使用cd命令来从当前的目录改变到data目录,并且再到<package>目录。如果你不确定<package>目录的名称,使用ls来列出文件和当前目录。改变目录至<package>android_programmers_
guide.FindAFriend,如下所示(略)

警告

如果你没有android_programmers_guide.FindAFriend目录,按照前一部分描述的方式创建你的应用程序并且运行“Hello World!”默认的由项目创建的应用程序,那样会确保你有个正确的目录。

找到android_programmers_guide.FindAFriend目录后,运行Is命令。这个命令列出特定文件夹内所有的文件和目录。改命令应当返回空的内容。因为,此时在该目录内没有文件和文件夹。

假定SQLite数据库必须在本目录下的一个数据库目录内,是时候来创建一个了。mkdir工具为你创建目录。因此,运行mkdir databases命令。它将创建保留数据库的目录。

警告

现在,你几乎是在服务器的根目录上。因此你刚刚创建的目录将被作为根目录进入。当你运行活动时,可能会出问题,因为每一个活动有一个不同的用户。出于开发的目的,要解决这个问题,运行chmod 777 databases来准许每个人都能进入到数据库目录。将来,你必须对给予每个人的权力到一些敏感的Android条目非常谨慎才行。只给予特定的用户需要使用特定条目的权力。

已经创建了数据库目录了,可以创建数据库了。使用cd命令导航到数据库目录。在数据库目录后,使用sqlite3 工具来创建数据库并命名它为friends.db,如下:

# sqlite friends.db

如果执行命令成功,你应当能看到一个SQLite3版本信息,本例是3.5.0,和一个 SQLite3 prompt—sqlite>。这说明数据库已被建立但是是空的。数据库没有包含表格和数据。记住,下一步是为活动数据创建一个表格。

你需要创建一个名为friends的表格。这个表将保留id,name,location,created, 和 modified 字段。这些字段将为你的项目提供足够的信息。

提示

如果你对SQLite不熟悉,一个SQLite命令必须以分号结束。如果你想要跨越一个命令这个会有帮助。没有终止SQLite命令的情况下,按下ENTER键会继续给你一个提示符,…>。你不能在提示符继续输入命令,除非你使用分号。一旦分号被使用,SQLite将把连续的命令作为一个完整的命令。

要在数据库内创建friends表格,在sqlite>提示符输入下列命令:

CREATE TABLE friends (_id INTEGER PRIMARY KEY, name TEXT, location TEXT,
created INTEGER, modified INTEGER);

如果命令执行成功,将返回到sqlite>提示符,如下图所示(略)。

数据库现在可以被使用了,你可以退出SQLite了。使用.exit来退出。然后可以退出shell部分返回到Eclipse.

创建数据库是创建应用程序的第一步。现在数据库和相应的表格已经被创建,你需要一个方法来存储数据。受雇Android数据的存储方式是一个Content Provider。下面的部分带你走进如何为新数据库创建一个定制Content Provider并存储数据。

你可能感兴趣的:(android)