Android数据存储方案

android内置数据库——SQLLite

概述SQLite

SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

创建数据库

使用SQLiteOpenHepler来创建数据库,首先明白SQLiteOpenHepler是一个抽象类,使用它就要创建自己的帮助类去继承它。

Android数据存储方案_第1张图片

当数据库不可写入的时候(磁盘空间已满),getReadableDatabase()方法返回的对象将以只读的方式打开数据库,而getWritableDatabase()将出现异常。

public class MyDatabaseHelper extends SQLiteOpenHelper {

    public static final String CREATE_BOOK = "create table Book ("
            + "id integer primary key autoincrement, "
            + "author text, "
            + "price real, "
            + "pages integer, "
            + "name text)";

    public static final String CREATE_CATEGORY = "create table Category ("
            + "id integer primary key autoincrement, "
            + "category_name text, "
            + "category_code integer)";

}

对数据库的操作

Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。 

SQLiteDatabase的常用方法 :增(insert)、删(Delete)、改(Update)、查(Query)

方法名称

方法表示含义

openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory  factory)

打开或创建数据库

insert(String table,String nullColumnHack,ContentValues  values)

插入一条记录

delete(String table,String whereClause,String[]  whereArgs)

删除一条记录

query(String table,String[] columns,String selection,String[]  selectionArgs,String groupBy,String having,String  orderBy)

查询一条记录

update(String table,ContentValues values,String whereClause,String[]  whereArgs)

修改记录

execSQL(String sql)

执行一条SQL语句

close()

关闭数据库

每次进行以上操作时,都要创建自己定义继承的帮助类。代码仅供参考

dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);//创建MyDatabaseHelper对象

SQLiteDatabase db = dbHelper.getWritableDatabase();

 ContentValues values = new ContentValues();
                // 开始组装第一条数据
                values.put("name", "The Da Vinci Code");
                values.put("author", "Dan Brown");
                values.put("pages", 454);
                values.put("price", 16.96);
 db.insert("Book", null, values); // 插入第一条数据
 db.update("Book", values, "name = ?", new String[] { "The Da Vinci Code" });
 db.delete("Book", "pages > ?", new String[] { "500" });

关于查询操作,SQLlite有提供query方法,下面是query的参数

Android数据存储方案_第2张图片

query参数多,但不用为每条语句指定所有的查询语句,调用query()方法后会返回一个Cursor对象,查询到的所有数据都将从这个对象中取出。

Cursor游标常用方法
 

方法名称

方法描述

getCount()

获得总的数据项数

isFirst()

判断是否第一条记录

isLast()

判断是否最后一条记录

moveToFirst()

移动到第一条记录

moveToLast()

移动到最后一条记录

move(int offset)

移动到指定记录

moveToNext()

移动到下一条记录

moveToPrevious()

移动到上一条记录

getColumnIndexOrThrow(String  columnName)

根据列名称获得列索引

getInt(int columnIndex)

获得指定列索引的int类型值

getString(int columnIndex)

获得指定列缩影的String类型值

使用SQL操作数据

Android数据存储方案_第3张图片

具体用方法:

Android数据存储方案_第4张图片

你可能感兴趣的:(Android,SQLlite)