Android:SQLite数据库

SQLite数据库
一、SQLite简介
     SQLite是一款轻量级的关系型数据库,它的运行速度非常快,占用资源非常少。非常适合在移动设备上使用。
二、创建数据库

        Android中专门提供了一个SQLiteOpenHelper帮助类,首先SQLiteOpenHelper是一个抽象类,如果要使用这个类,必须创建一个类来继承它,SQLiteOpenHelper中有两个抽象方法,一个是onCreat(),一个是onUpdate(),我们必须在自己的帮助类中重写这两个方法,然后再这两个方法中实现和升级数据库的逻辑。
        SQLiteOpenHelper中还有两个非常重要的实例方法,getReadableDatabase()和getWriteableDatabase(),这两个方法都可以创建或者打开一个数据库(如果这个数据库已经存在,那么直接打开,否则创建一个新的数据库),并返回一个可对数据库进行读写操作的对象,不同的是,当数据库不可写入的时候(如磁盘空间已满),getReadableDatabase()返回的对象将以只读的方式去打开数据库,而getWriteableDatabase()方法将出现异常。
SQLiteOpenHelper中有两个构造方法可供重写,一般使用参数少的那个构造方法即可,这个方法接收四个参数:
dbHelper = new MyDatabaseHelper(context, name, factory, version);
第一个参数:Context,上下文
第二个参数:name ,数据库的名字
第三个参数:允许我们在查询数据的时候返回一个自定义的Cursor,一般都是null
第四个参数:表示当前数据库的版本号,用于对数据库的升级操作
构建出SQLiteOpenHelper的实例之后,在调用他的getReadableDatabase()和getWriteableDatabase()方法就能够创建数据库了,数据库文件会存放在、data/data<package name>/databases/目录下,此时,重写onCreat()方法也会执行,所以通常会在这里去处理一些建表的逻辑。

SQL的数据类型很简单:integer表示整型,real表示浮点型,text表示文本型,blob表示二进制型,autoincrement关键字表示自增长。
新建MyDatabaseHelper类:
public class MyDatabaseHelper extends SQLiteOpenHelper {

	
	public static final String CREATE_BOOK = "create table book("
			+"id integer primary key autoincrement, "
			+"author text, "
			+"price real,"
			+"page integer, "
			+"name text)";
	private Context mContext;
	
	public MyDatabaseHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);
		
		mContext = context;
		
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(CREATE_BOOK);
		Toast.makeText(mContext, "Create succeeded", 1).show();

	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		
	}

}
然后再MainActivity中得到MyDatabaseHelper的实例,调用getWritableDatabase()方法创建数据库就行了。execSQL()方法是建表语句。
补充:常用的数据库命令:
打开数据库:sqlite3+数据库名称
查看数据库中的表:table
查看建表语句: . schema
三、升级数据库

你可能感兴趣的:(Android:SQLite数据库)