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

前端之家收集整理的这篇文章主要介绍了Day13持久化存储——SQLite数据库存储前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

猜你在找的Sqlite相关文章