sqlite简介
sqlite是Android系统集成了的一个轻量的数据库,这是一个轻量级的数据库引擎,专门适用于资源有限的设备上适量的数据存储。
sqliteDatabase简介
一个sqliteDatabase就代表一个数据库,底层就是一个数据库文件,一旦应用获得了代表指定数据库的sqliteDatabase对象,就可以通过该对象来对数据库进行操作。
sqliteDatabase提供了下列静态方法打开一个文件对应的数据库。
static sqliteDatabase openDatabase(String path,sqliteDatabase.CursorFactory factory,int flags); 打开path路径对应的sqlite数据库。
static sqliteDatabase openorCreateDatabase(File file,sqliteDatabase.CursorFactory factory); 打开或者创建一个文件file对应的sqlite数据库。
static sqliteDatabase openorCreateDatabase(String path,sqliteDatabase.CursorFactory factory); 打开或者创建一个path文件所代表的sqlite数据库。
注:这里的sqliteDatabase.CursorFactory表示允许在数据对象调用查询的时候返回一个Cursor的子类对象。指定文件名创建数据库对象时,文件的后缀名没有硬性要求,可有可无,原因是android基于linux,而在linux中文件的后缀名没有windows中那么严格,仅仅是一个文件类型的标识而已。
对于所有的数据增删查改方法,基本的原理就是对sql语句进行了封装,使其对象化和函数化,如果学过J2EE的持久化层框架,那么很容易理解这里的处理过程与Hibernate和Mybatis基本相同。具体的使用实例可以参考这篇文章(http://www.jb51.cc/article/p-fcdgiacb-rg.html),分析的很详细。
|
Convenience method for deleting rows in the database.
|
|
Deletes a database including its journal file and other auxiliary files that may have been created by the database engine.
|
|
|
Execute a single sql statement that is NOT a SELECT/INSERT/UPDATE/DELETE.
|
|
|
Returns the maximum size the database may grow to.
|
|
Gets the path to the database file.
|
Gets the database version.
|
|
Convenience method for inserting a row into the database.
|
|
Convenience method for inserting a row into the database.
|
|
|
Returns true if the database is currently open.
|
Returns true if the database is opened as read only.
|
|
Returns true if the new version code is greater than the current database version.
|
|
|
Query the given table,returning a
Cursor over the result set.
|
Query the given URL,175); text-decoration:none; margin-bottom:0px" rel="nofollow">Cursorover the result set.
|
|
StringorderBy)
Query the given table,175); text-decoration:none; margin-bottom:0px" rel="nofollow">Cursorover the result set.
|
|
Stringlimit)
Query the given URL,175); text-decoration:none; margin-bottom:0px" rel="nofollow">Cursorover the result set.
|
|
|
|
Sets the maximum size of the prepared-statement cache for this database.
|
|
Sets the maximum size the database will grow to.
|
|
Sets the database version.
|
|
Convenience method for updating rows in the database.
|
sqlite事务(Transaction)和其他所有数据库的事务一样,是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
使用事务的常用模式如下
db.beginTransaction(); try { ... dbsetTransactionSuccessful } finallyendTransaction}
sqliteDatabase的数据库事务操作方法包括下列一些,四种启动方式的区别,官方文档并没有明确说明。统一的说明是允许事务嵌套使用,所有的嵌套事务会同时成功或失败,如果某个嵌套事务没有调用isTransactioinSuccessful(),那么所有的事务都会回滚,否则,所有的事务都会提交。
Begins a transaction in IMMEDIATE mode.
|
Begins a transaction in EXCLUSIVE mode.
|
Begins a transaction in IMMEDIATE mode.
|
End a transaction.
|
Returns true if the current thread has a transaction pending.
|