打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android SQLite | mo
Android SQLite解析
By: 海市蜃楼 | In:Android开发
17八2009
说到SQLite,无论C++、Java程序员还是其他的非主流程序员,应该都听说过它,可见其非常流行。SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,而且被其他的公司广泛使用,比如说:Adobe,具体SQLite的介绍可以到其官方网站浏览。
在学习Android SQLite前,必须对SQL语句有很深入的了解(如果忘记了,利用这次机会好好复习下)。关于数据库、表的创建等基础知识,由于篇幅有限就不在此详细说明,主要说明数据库的4大基本操作:添加(insert)、删除(delete)、查询(query)、修改(update),这是在学习Android SQLite的过程中最为关注的部分。除了这4大操作以外,我们还需要注意的地方就是:获取查询结果的记录集(Recordset)。
Android SQLite分析
等有了这些基本概念,再来学习Android SQLite,从Android SDK中摘要如下:
首先关注到的是SQLiteDatabase类,在Android SDK中看其详细说明,其主要接口如下:
返回值函数原型
longinsert(String table, String nullColumnHack, ContentValues values)Convenience method for inserting a row into the database.
Intdelete(String table, String whereClause, String[] whereArgs)Convenience method for deleting rows in the database.
Cursorquery(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)Query the given table, returning a Cursor over the result set.
Intupdate(String table, ContentValues values, String whereClause, String[] whereArgs)Convenience method for updating rows in the database.
看到这些是不是感到似曾相识了?不错,这就是数据库的4大基本操作:添加(insert)、删除(delete)、查询(query)、修改(update)。感觉轻松很多了,再仔细看下这些函数的参数,发现很多参数都是按照SQL语句定义的,
例如:select * from p_employee  where id <>’9999′   order by id asc
需要额外说明2个数据结构: ContentValues,Cursor;
ContentValues就相当于C++中的map[(String key, Integer value)],其主要接口包括put(),get()。再结合insert操作的主要目的:按照表中数据段将对应的数据项写入到表中,就可以看出来ContentValues主要是存放表中每个表的数据段,以及其对应的值。
Cursor也就是前面说的:查询结果的记录集。从记录集的特征可以想到其包含的操作应该有:MoveFirst()、MoveLast()、MoveNext()、Move()、IsLast()、GetColumns()等,而且它还是个抽象类[abstract class],SQLiteCursor就是其具体的实现。
关于SQLiteDatabase类,其他值得关注的函数是:Create()、execSQL()。至于其他的函数,比如beginTransaction(),endTransaction()等关于数据库同步操作的函数,就只有在使用的过程中深入了解。
额外补充说明
最后值得一提的是:一个很好的辅助类SQLiteOpenHelper,其简化了数据库的操作。按照Android SDK文档中的说明,也可以通过继承此类、改写其接口的方法来实现对数据库的操作,SQLiteOpenHelper,其主要接口如下:
仔细分析其说明,发现这个类主要是创建一个数据库,并对数据库的版本进行管理。当在程序中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候,如果当时没有数据库,那么Android系统就会自动创建一个数据数据库。
其他辅助说明
所有的数据库文件存放在手机中的/data/data/package_name/databases路径下。最为重要的一点是:在Android中,所有的应用软件的数据(包括文件、数据库)为该应用软件所私有的,如果需要在不同的应用中共享数据,必须使用ContentProvider实现,一个ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型。
为了方便测试,如何查看SQLite数据库的内容?使用Android SDK提供的工具:sqlite3.exe。这是一个命令行实用工具,列举主要使用的命令如下:查看表结构 sqlite3 “path”    .dump
例如 G:\android\android-sdk-window\tools>sqlite3 30m.db3    .bump,
运行结构如下:BEGGIN TRANSACTION;
CREATE TABLE [TmProgramm] ([index] INTEGER,[nID] INTEGER, [nChannelID] INTEGER,[strTitle] CHAR(255),
[dwDuration] INTEGER, [strThumbNail] CHAR(1024),[strURL] CHAR(255),[strPathName] CHAR(255),
[strAuthor] CHAR(255),[dwSize] INTEGER,[State] INTEGER,[Percent] INTEGER,
[strConverted] CHAR(255),[dwVideoType] INTEGER,[dwDownloadedBytes] INTEGER,[strTime] CHAR(255),
[strHTTPVersion] CHAR(255),[strUserAgent] CHAR(255),[strReferer] CHAR(255));
COMMIT;
这就是当初创建数据库的语句
查看表中的内容 sqlite3   “path” .schema
具体运行结果可以下载数据库文件30m.db3 ,在命令行中运行就可以看到了
其他帮助命令查询 sqlite3 .help
总结说明
通过对以上的学习,简单写了个数据库的例子(moandroid.database.zip),大家可以参考下。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Android Sqlite 使用
Androide SQLiteDatabase数据库操作(转)
Android平台SQLite快速入门实践
【Android】SQLite数据库基本用法详解(极简洁)
Android创建和使用数据库详细指南(1)
【Android基础篇】SQLite数据库的增删改查基本操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服