日期:2014-05-16  浏览次数:20577 次

Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库 .

SQLite数据库简单的认识

?????? SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

?

SQLite特性

下面是访问SQLite官方网站: http://www.sqlite. org/ 时第一眼看到关于SQLite的特性.

  1. ACID事务   

????? 2. 零配置 – 无需安装和管理配置   

????? 3. 储存在单一磁盘文件中的一个完整的数据库   

????? 4. 数据库文件可以在不同字节顺序的机器间自由的共享   

????? 5. 支持数据库大小至2TB   

????? 6. 足够小, 大致3万行C代码, 250K   

????? 7. 比一些流行的数据库在大部分普通数据库操作要快   

????? 8. 简单, 轻松的API   

????? 9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定   

????? 10. 良好注释的源代码, 并且有着90%以上的测试覆盖率   

????? 11. 独立: 没有额外依赖   

????? 12. Source完全的Open, 你可以用于任何用途, 包括出售它   

????? 13. 支持多种开发语言,C, PHP, Perl, Java, ASP .NET,Python

?

下面我以一个完整的Demo例子来展示对SQLite数据库操作,包括对数据库表的增、删、改、查等基本操作。下面的一个截图是该演示Demo的项目框架图:

通过上面的截图可以看到该项目src目录下包含两个类:MainActivity.java 和 MySQLiteOpenHelper.java 。其中MySQLiteOpenHelper.java是对数据库操作辅助类。

?

布局文件main.xml的代码:

?

[c-sharp] view plaincopyprint?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"??
  3. ????android:orientation="vertical"??
  4. ????android:layout_width="fill_parent"??
  5. ????android:layout_height="fill_parent">??
  6. ????<TextView?android:id="@+id/tv_title"??
  7. ???????android:layout_width="fill_parent"??android:layout_height="wrap_content"???
  8. ???????android:text="Hello,?Welcome?to?Andy's?blog!"?android:textSize="16sp"/>??
  9. ??????
  10. ????<Button?android:id="@+id/newTable"?android:layout_width="fill_parent"????
  11. ????????android:layout_height="wrap_content"?android:text="1.新建数据表"/>????
  12. ????<Button?android:id="@+id/addOne"?android:layout_width="fill_parent"????
  13. ????????android:layout_height="wrap_content"?android:text="2.插入一条记录"/>????
  14. ????<Button?android:id="@+id/query"?android:layout_width="fill_parent"?????
  15. ????????android:layout_height="wrap_content"?android:text="3.查询数据库"/>????
  16. ????<Button?android:id="@+id/editOne"?android:layout_width="fill_parent"