现在的位置: 首页 > 综合 > 正文

Day13持久化存储——SQLite数据库存储

2017年05月18日 ⁄ 综合 ⁄ 共 2112字 ⁄ 字号 评论关闭

SQLITE是一个轻量级 嵌入式的关系式的数据库,他遵守ACID的关联式数据库管理系统,主要是针对嵌入式设备设计的数据库 占用的空间非常少。

其实有四个类(接口)贯穿始终

Sqlite.SQLiteDatabase完成数据的CRUD操作已经事务处理。

SQLITEOpenHelper     定义数据库的创建及更新操作类

Curse
     保存所有的查询结果

ContentValue       对传递的数值进行封装 


数据库操作类:SQLiteDatabase 

在Android系统之中,一个android.database.sqlite.SQLiteDatabase类的实例都代表了一个SQLite数据库的操作,通过SQLiteDatabase类可以执行SQL语句,以完成对数据表的增加、修改、删除、查询等操作,在此类之中定义了基本的数据库执行SQL语句的操作方法以及一些操作的模式常量。


数据库操作辅助类:SQLiteOpenHelper

SQLiteDatabase类本身只是一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中要覆写相应的抽象方法。 


SQLiteOpenHelper类中定义的回调方法 

在SQLiteOpenHelper类中定义了三个回调方法,这三个方法的作用如下: 


onCreate():在第一次使用数据库的时候会调用此方法生成相应的数据库表,但是此方法并不是说是在实例化SQLiteOpenHelper类的对象时调用,而是通过对象调用了getReadableDatabase()或getWritableDatabase()方法时才会调用; 
onUpgrade():当数据库需要进行升级的时候,会调用此方法,一般可以在此方法之中将数据表删除,并且在删除表之后往往会调用onCreate()方法以重新创建新的数据表; 
open():当数据库打开的时候会调用此方法,但是一般情况下用户不需要覆写此方法。
 

来一个小DEMO玩玩

SQLiteOpenHelper类

package com.example.sqlitesave;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DbOpenHelp extends SQLiteOpenHelper {
	private static final String DATABASENAME = "jdk.db" ;	// 数据库名称
	private static final int DATABASEVERSION = 1 ;	// 数据库名称
	private static final String TABLENAME = "mytab" ;	// 数据表名称
	
	public DbOpenHelp(Context context) {
		super(context, DATABASENAME, null, DATABASEVERSION);// 调用父类构造
	}
	@Override
	public void onCreate(SQLiteDatabase db) {// 创建数据表
		String sql = "CREATE TABLE " + TABLENAME + " (" + 
				"id			INTEGER 		PRIMARY KEY ," + 
				"name		VARCHAR(50)		NOT NULL ," + 
				"birthday	DATE			NOT NULL)";// SQL语句
			db.execSQL(sql) ;				// 执行SQL语句

	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		String sql = "DROP TABLE IF EXISTS " + TABLENAME ;	// SQL语句
		db.execSQL(sql);				// 执行SQL语句
		this.onCreate(db); 				// 创建表

	}

}

主要Database类

package com.example.sqlitesave;

import android.app.Activity;
import android.os.Bundle;

public class SQLiteDemo extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	DbOpenHelp help=new DbOpenHelp(this);
	help.getWritableDatabase();
}
}

验证的时候到了 只要到 data/data 然后找到你的APP文件里找找 databases 里面有不有jdk.db


抱歉!评论已关闭.