Android中SQLite数据库介绍和使用

转载请注明出处:SQLite简介       上一篇博文我们学习了Android几种简单的数据存储方式,SharedPreference存储和文件存储(其中又分为外部设备文件存储和内部设备文件存储),这些数据存储方式可以满足我们日常开发中存储少量数据的需求。那么,如果使用它们存储一些数据量较大并且逻辑关系较为复杂的数据集,它们便显得较为笨拙和效率低下。那有没有更好的存储方案来解决此
摘要由CSDN通过智能技术生成

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38121557


SQLite简介

       上一篇博文我们学习了Android几种简单的数据存储方式,SharedPreference存储和文件存储(其中又分为外部设备文件存储和内部设备文件存储),这些数据存储方式可以满足我们日常开发中存储少量数据的需求。那么,如果使用它们存储一些数据量较大并且逻辑关系较为复杂的数据集,它们便显得较为笨拙和效率低下。那有没有更好的存储方案来解决此类问题呢,还是只能选择忍受?放心,窝在Google的那一帮技术大牛早就考虑到这个问题,他们的解决方案是:为Android系统内置轻便又功能强大的嵌入式数据库--SQLite。今天我们将会深入地学习如何在Android中使用SQLite数据库存储数据,那在学习使用SQLite之前,我们现在简单了解一下SQLite数据库的特点。
       SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且由于其占用资源低(占用内存只需几百K)、处理速度快等特点,目前许多嵌入式产品中都使用了它,其中就包括大名鼎鼎的iOS和Android移动操作系统。SQLite能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月, 至今已经有14个年头,现在SQLite也迎来了一个版本 SQLite 3已经发布。SQLite的特点大致总结如下:
      1.轻量级
     使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
     2.独立性
     SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
     3.隔离性
     SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
     4.跨平台
     SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android和IOS。
     5.多语言接口
     SQLite 数据库支持多语言编程接口。
     6.安全性
     SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
       要想了解更多有关SQLite数据库相关的历史、特点及命令操作,可以学习以下两个网站的资源:

在Android中使用SQLite实例

       简单地了解了一下SQLite数据库后,我们再来学习一下如何在Android中编写应用程序来使用SQLite执行数据的CRUD操作。我们通过一个例子来完成我们的学习任务:大致要实现的功能就是将一些Person个人信息从SQLite数据库中的person表中查询出来并以列表的形式展现,然后可以对列表中的person信息进行修改和删除,并可以添加新的person信息数据库中。我们编写的程序列表及包图如下:

由于该例子中的类较多,且类和类之间的关系有点复杂,在这里我画一张简单的类图关系图,方便读者理解和学习。在这里特别声明一下,由于篇幅关系,不是每个类中的方法都在类图中声明了,具体的还要看Demo实例中的代码为准,我们主要是为了理清一下类与类之间的关系。类图图示如下:

       整理好思路后,接下来我们来看下每个类中的具体代码是如何编写的。 那在实际的开发中,为了让我们更好的管理和维护SQLite数据库,Android提供了一个SQLiteOpenHelper类。我们需要定义一个继承自 SQLiteOpenHelper的子类(在实例中为DatabaseOpenHelper类),并在此类中重写onCreate()和onUpgrade()方法。下图列出了SQLiteOpenHelper所提供的一些方法和方法说明:
     /**  
		 * 构造方法,一般是传递一个要创建的数据库名称那么参数
		 */
		public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version,
	            DatabaseErrorHandler errorHandler)
		/**
		 * 创建数据库时调用
		 */
		public void onCreat
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值