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

Day13持久化存储——SQLite数据库存储,第1张

概述SQLITE是一个轻量级 嵌入式的关系式的数据库,他遵守ACID的关联式数据库管理系统,主要是针对嵌入式设备设计的数据库 占用的空间非常少。 其实有四个类(接口)贯穿始终 Sqlite.SQLiteDatabase完成数据的CRUD *** 作已经事务处理。 SQLITEOpenHelper     定义数据库的创建及更新 *** 作类 Curse      保存所有的查询结果 ContentValue    

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

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

sqlite.sqliteDatabase完成数据的CRUD *** 作已经事务处理。

sqlITEOpenHelper 定义数据库的创建及更新 *** 作类

Curse 保存所有的查询结果

ContentValue 对传递的数值进行封装


数据库 *** 作类:sqliteDatabase

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


数据库 *** 作辅助类:sqliteOpenHelper

sqliteDatabase类本身只是一个数据库的 *** 作类,但是如果要想进行数据库的 *** 作,还需要一个androID.database.sqlite.sqliteOpenHelper类@H_419_76@帮助下才可以取得进行,但是,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); 				// 创建表	}}@H_502_144@ 
主要Database类

package com.example.sqlitesave;import androID.app.Activity;import androID.os.Bundle;public class sqliteDemo extends Activity{@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {	super.onCreate(savedInstanceState);	setContentVIEw(R.layout.activity_main);	DbOpenHelp help=new DbOpenHelp(this);	help.getWritableDatabase();}}@H_502_144@验证的时候到了 只要到 data/data 然后找到你的APP文件里找找 databases 里面有不有jdk.db          总结       

以上是内存溢出为你收集整理的Day13持久化存储——SQLite数据库存储全部内容,希望文章能够帮你解决Day13持久化存储——SQLite数据库存储所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存