Post

Android's SQLite

SQLite数据库是一个非常小并且比较简单的数据库引擎,我们能够方便的使用它来做数据存储.Android 上创建和打开数据库只需要继承SQLiteOpenHelper, 默认的构造方法中,你要制定数据库名和版本,如果该数据库已经存在,则打开,否则会被创建。如果有许多单独的数据库文件。每个数据库都必须表示为单独的 SQLiteOpenHelper。但是这样使用的时候是有坑的, SQLiteOpenHelper 子类返回同样的 SQLiteDatabase 实例。这意味着在任何线程调用 SQLiteDatabase.close() 都会关闭你应用中所有的 SQLiteDatabase 实例。所以要格外注意打开和关闭时机,同时我觉得这样做容易混乱,不如合并到一个里面,除非数据巨大. 数据库文件对你的应用来说是私有的,数据库文件没有加密,一般在/data/data/(packageName)/database/路径下面,如果是root的手机任何人都可以读取的.如果在不root的情况下读取,就得在你的应用中拷贝出来db文件放置到public路径中的位置.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class DBHelper extends SQLiteOpenHelper {
    private static final String TAG = "DBHelper";
   	private static final String DATABASE_NAME = "contacts.db";
   	private static final int DATABASE_VERSION = 1;

   	public DBHelper(Context context) {
       	super(context, DATABASE_NAME, null, DATABASE_VERSION);    	}

   	/**
   	* if the database named DATABASE_NAME doesn't exist in order to create it.     	*/
    @Override
   	public void onCreate(SQLiteDatabase sqLiteDatabase) {
       	Log.i(TAG, "["+DATABASE_NAME+"v."+DATABASE_VERSION+"]");
    	//TODO: Create the Database
    }

   	/**
   	* Called when the DATABASE_VERSION is increased.    	*/
    @Override
   	public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
       	Log.i(TAG, "Upgrading database["+DATABASE_NAME+" v." + newVersion+"]");
    }
}

源码地址

参考
Android 中的 SQLite 数据库支持
using the SQLite Database on Android and SQLiteOpenHelper

This post is licensed under CC BY 4.0 by the author.