加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库详解

发布时间:2020-12-12 23:56:05 所属栏目:百科 来源:网络整理
导读:什么是SQLite: SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,只需要几百KB!!!!! SQLite的特性: 轻量级 使用 SQLite只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当
什么是SQLite:
SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,只需要几百KB!!!!!

SQLite的特性:
轻量级
使用 SQLite只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
独立性
SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
隔离性
SQLite数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
跨平台
SQLite目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。
多语言接口
SQLite 数据库支持多语言编程接口。
安全性
SQLite数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据.

优点: 1.能存储较多的数据。
2.能将数据库文件存放到SD卡中!


什么是 SQLiteDatabase?

一个 SQLiteDatabase 的实例代表了一个SQLite的数据库,通过SQLiteDatabase 实例的一些方法,我们可以执行SQL 语句,对数 据库进行增、删、查、改的操作。需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的。

什么是 SQLiteOpenHelper ?
根据这名字,我们可以看出这个类是一个辅助类。这个类主要生成一个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的 方法getWritableDatabase(),或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android 系统就会自动生成一 个数 据库。SQLiteOpenHelper是一个抽象类,我们通常需要继承它,并且实现里边的3 个函数,

什么是 ContentValues 类?
ContentValues 类和Hashmap/Hashtable比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个
String 类型,而值都是基本类型。

什么是 Cursor ?
Cursor 在Android 当中是一个非常有用的接口,通过Cursor我们可以对从数据库查询出来的结果集进行随 机的读写访问。

==============================================================================================
继承的 SQLiteOpenHelper

java代码:

  1. package eoe.demo;


  2. import android.content.Context;
  3. import android.database.sqlite.SQLiteDatabase;
  4. import android.database.sqlite.SQLiteOpenHelper;
  5. import android.util.Log;

  6. public class MySQLiteOpenHelper extends SQLiteOpenHelper{
  7. public final static int VERSION = 1;// 版本号
  8. public final static String TABLE_NAME = "himi";// 表名
  9. public final static String ID = "id";//后面ContentProvider使用
  10. public final static String TEXT = "text";
  11. public static final String DATABASE_NAME ="Himi.db";
  12. public MySQLiteOpenHelper(Context context) {
  13. // 在Android 中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,
  14. // 因为它会自动去检测是否存在这个数据库,如果存在则打开,不过不存在则创建一个数据库;
  15. // 创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。
  16. //下面是来创建一个名为"DATABASE_NAME"的数据库,并返回一个SQLiteDatabase对象

  17. super(context,DATABASE_NAME,null,VERSION);
  18. }
  19. @Override
  20. // 在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表;
  21. public void onCreate(SQLiteDatabase db) {
  22. String str_sql = "CREATE TABLE " + TABLE_NAME + "(" +ID
  23. + " INTEGER PRIMARY KEY AUTOINCREMENT," + TEXT + " text);";
  24. // CREATE TABLE 创建一张表 然后后面是我们的表名
  25. // 然后表的列,第一个是id 方便操作数据,int类型
  26. // PRIMARY KEY 是指主键 这是一个int型,用于唯一的标识一行;
  27. // AUTOINCREMENT 表示数据库会为每条记录的key加一,确保记录的唯一性;
  28. // 最后我加入一列文本 String类型
  29. // ----------注意:这里str_sql是sql语句,类似dos命令,要注意空格!
  30. db.execSQL(str_sql);
  31. // execSQL()方法是执行一句sql语句
  32. // 虽然此句我们生成了一张数据库表和包含该表的sql.himi文件,
  33. // 但是要注意 不是方法是创建,是传入的一句str_sql这句sql语句表示创建!!
  34. }
  35. @Override
  36. public void onUpgrade(SQLiteDatabase db,int oldVersion,intnewVersion) {
  37. // 一般默认情况下,当我们插入 数据库就立即更新
  38. // 当数据库需要升级的时候,Android 系统会主动的调用这个方法。
  39. // 一般我们在这个方法里边删除数据表,并建立新的数据表,
  40. // 当然是否还需要做其他的操作,完全取决于游戏需求。
  41. Log.v("","onUpgrade");
  42. }
  43. }
未完待续 转自:http://www.eoeandroid.com/thread-96298-1-1.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读