数据库在android是经常会使用到的东西, 但毕竟是在移动端的东西,都是一些比较轻量级的操作,无非就是增删该查,现在也有很多数据库的框架可以使用,能够很方便的简化对数据库的操作。最近在项目用到数据库,项目本身就比较小实在没有必要为了简化操作去集成一个框架进来。然而确是碰到了稍微复杂一点数据库查询,自己花了点时间去整理了一下在次记录下来。
SqliteOpenHelper
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布
sqlite普通查询
SqliteOpenHelper本身是个android自带的用来管理数据库的一个类,可以很方便的对数据库进行创建和管理,增删改查。通常我们查询表使用的是query()方法。
如上图所示,通过query()我们就能轻松地对数据库实现数据的分页,排序,筛选查询。比如以下代码:
public List<AdMsg> getMsgListByPositionMode(int positionMode) {
List<AdMsg> list = null;
rd = helper.getReadableDatabase();
if (rd.isOpen()) {
AdMsg msg;
list = new ArrayList<>();
Cursor cursor = rd.query(AdvListDBInfo.TABLE_NAME_1, null, AdvListDBInfo.COLUMN_POSITION_MODE + "=?", new String[]{positionMode + ""}, null, nu