Android存储方案之SQLite----简介及应用

一、SQLite概述
	Android中SQLite相比其他几种存储方式(File I/O、Share Preference、internal)更适合结构性数据的存储。如:联系人信息
	应用程序创建的数据库文件存储在/data/data/包名/database目录下,应用程序间不能相互访问
	在一个应用当中,数据库的名字也是惟一的
	Content Provider 为不同application间交换数据提供了统一的接口

二、SQLite的实现 1.创建SQLite数据库
  • name代表数据库的名称
  • mode代表创建数据库的模式,包括MODE_PRIVATEMODE_WORLD_READABLE、MODE_WORLD_WRITEABLE。用于查询构造Cursor子类的对象,通常设置为null
使用openOrCreateDatabase()前应该首先查询数据库是否已经存在,效率较低。databaseList()方法返回应用程序创建的所有私有数据库的名字数组。 String[] list = databaseList(); for(int i=0;i<list.length-1;i++){ if(DATABASE_NAME.equals(list[i])){ flag = true; break; } } for(int i=0;i<list.length-1;i++){ if(DATABASE_NAME.equals(list[i])){ flag = true; break; } } //创建数据库 db = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null); for(int i=0;i<list.length-1;i++){ if(DATABASE_NAME.equals(list[i])){ flag = true; break; } } for(int i=0;i<list.length-1;i++){ if(DATABASE_NAME.equals(list[i])){ flag = true; break; } } //创建数据库 db = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null); 2.SQLiteDatabase和SQLiteOpenHelper(辅助类) SQLiteOpenHelper这个类主要生成一个数据库,并对数据库的版本进行管理。 当在程序当中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。  SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里边的3个函数,onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表。  
  • onUpgrade(SQLiteDatabase, int, int):当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,也可删除【触发器】
  • onOpen(SQLiteDatabase):打开数据库时的回调函数
调用getWritableDatabase()可以获得可写的SQLiteDatabase对象。 调用getReadableDatabase()可以获得一个只读的SQLiteDatabase对象 3.数据操作方式
	db.execSQL("INSERT INTO " + Publisher.AUTHOR_TABLE + "(author_name, address, phone)"+ "value  (" + "‵" + name +"'," + "'"+ address +"'," + "'"+ phone +"'" +")" );
insert方法 ContentValues values = new ContentValues(); values.put(TABLE_NAME, name); values.put(KEY_ID, id); values.put(KEY_TITLE, title); SQLiteDatabase mDb = mOpenHelper.getWritableDatabase(); db.insert(TABLE_NAME, null, values);
	SQLite是一个轻量级的嵌入式数据库,它支持SQL语句,在Android作为标准数据库

	使用下面的方法可以创建一个SQLite数据库
 
 
	使用SQLiteOpenHelper创建数据库不会重复执行数据库的初始化操作。需要查询数据库是否存在,执行效率更高。
	一个SQLiteDatabase的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,可以执行SQL语句
	在进行增、删、改数据时可用execSQL(sql语句)或者SQLiteDababase的相关方法
	如:
	插入数据
	execSQL 
<span style="white-space:pre">	</span>db.insert(Publisher.AUTHOR_TABLE, null, values);
<span style="font-size:14px; white-space: pre;">		</span>
<span style="font-size:14px;">
</span>
<span style="font-size: 14px;">真用不好这个编辑器</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值