一 主要内容
1.概述
2.定义Schema与Contract
3.使用SQL Helper创建数据库
4.向数据库添加信息
5.从数据库中读取信息
6.删除数据库中的信息
7.更新数据库中的信息
二 翻译转载
?
对于重复或者结构化的数据(如联系人信息)等保存到DB是个不错的主意。这节课假定你已经熟悉SQL数据库的操作。在Android上可能会使用到的APIs,可以从android.database.sqlite包中找到。
?
Define a Schema and Contract [定义Schema与Contract]
SQL中一个中重要的概念是schema:一种DB结构的正式声明。schema是从你创建DB的SQL语句中生成的。你可能会发现创建一个创建一个伴随类(companion class)是很有益的,这个类成为合约类(contract class),它用一种系统化并且自动生成文档的方式,显示指定了你的schema样式。
Contract Clsss是一些常量的容器。它定义了例如URIs, 表名,列名等。这个contract类允许你在同一个包下与其他类使用同样的常量。 它让你只需要在一个地方修改列名,然后这个列名就可以自动传递给你整个code。
一个组织你的contract类的好方法是在你的类的根层级定义一些全局变量,然后为每一个table来创建内部类。
Note:?通过实现?BaseColumns
?的接口,你的内部类可以继承到一个名为_ID的主键,这个对于Android里面的一些类似cursor adaptor类是很有必要的。这样能够使得你的DB与Android的framework能够很好的相容。
例如,下面的例子定义了表名与这个表的列名:
publicstaticabstractclassFeedEntryimplementsBaseColumns{publicstaticfinalString TABLE_NAME ="entry";publicstaticfinalString COLUMN_NAME_ENTRY_ID ="entryid";publicstaticfinalString COLUMN_NAME_TITLE ="title";publicstaticfinalString COLUMN_NAME_SUBTITLE ="subtitle";...}
// Prevents the FeedReaderContract class from being instantiated.privateFeedReaderContract(){}
Create a Database Using a SQL Helper [使用SQL Helper创建DB]
privatestaticfinalString TEXT_TYPE =" TEXT";privatestaticfinalString COMMA_SEP =",";privatestaticfinalString SQL_CREATE_ENTRIES ="CREATE TABLE "+FeedReaderContract.FeedEntry.TABLE_NAME +" ("+