Android: SQLite的使用
原创 by Zoe.zhang (《Android第一行代码阅读笔记》)
- Android 系统内置了数据库,SQLite是一款轻量级的关系型数据库,运算速度快,占用的资源少,通常只需要几百K的内存,因此很适合用在移动设备上。
- SQLite 不仅支持基本的SQL语法,同时遵循数据库的ACID事务,相比MySQL等关系型数据库要简单很多。(5种关系型数据库比较)
- SQLite 是轻量级的数据库,其设计目标是嵌入式,SQLite不是一个独立的进程,而是作为程序的一部分,应用程序由编程语言内的API直接调用SQLite,这样可以有效得减少数据库访问延迟。SQLite将整个数据库作为一个单独的,可跨平台的文件存储在主机中;
- SQLite的写操作智能串行进行(写数据时给数据库加锁),SQLite的读操作可以多任务同时进行。
- SQLite是一个自给自足的,无服务器(不需要单独的服务器进程)轻量级的数据库,使用ANSI-C编写,并提供了简单和易于使用的API。
- 相关参考博客:
Android 数据库开发(一)SQLite3概述
Android SQLite (三 ) 全面详解(一)
android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
Android SQLite详解
0. SQLiteOpenHelper 抽象类
- Android 提供了一个SQLiteOpenHelper帮助类,这是一个抽象类,里面我们需要重写两个抽象方法 onCreate() 和onUpgrade(), 在这两个函数里实现创建和升级数据库的逻辑。
- SQLiteOpenHelper有两个构造函数,我们一般使用参数较少的那个构造函数,该方法接收四个参数分别是:(Context,数据库名,允许返回一个自定义cursor,一般传入null,当前数据版本号)。
- 在使用Android 的SQLite之前,需要对SQL基本语句有一定的了解。SQLite的数据类型相对来说很简单,integer表示整型,real表示浮点型,text表示文本类型,blob表示二进制型 等,我们通常需要在代码中执行SQL语句才能完成建表操作,如下例所示,我们通常将建表语句定义成一个字符串常量。
//新建MyDatabaseHelper
public class MyDatabaseHelper extends SQLiteOpenHelper{
public static final String CREATE_BOOK = "create table BOOK("
+ "id integer primary key autoincrement," //逗号 primary key 设为主键,关键字autoincrement 表示自增长
+ "author text,"
+ "price real,"
+ "pages integer,"
+ "name text)";
private Context mContext;
public MyDatabaseHelper(Context context,String name,CursorFactory factory,int version){
super(context,name,factory,version);
mContext = context;
}
//必须重写两个抽象方法
@Override
public void onCreate(SQLiteOpenHelper db){
db.execSQL(CREATE_BOOK); //执行建表语句
}
@Override
public void onUpgrade(SQLiteOpenHelper db,int oldVersion,int newVersion){
}
}
1.创建数据库
- 数据库帮助类中有两个重要的创建数据库的实例方法:getReadableDatabase()和getwritableDatabase()方法,注意当数据库不可写入的时,使用getwritableDatabase()可能会出错;
- 一般情况下,这两个实例的方法没有什么区别,都会检测数据库存放目录下是否有该表,如果没有则创建该表,如果存在则打开该表。
- 数据库文件存放目录: /data/data/package name/databases/,可以使用File Explorer来查看,比较推荐是使用adb shell 进行查看。
private MyDatabaseHelper dbhelper;
dbhelper = new MyDatabaseHelper(this,"Bookstore.db",null,1) // bookstore.db 表名
//创建数据库表
dbhelper.getWritableDatabase();
<\hahahhahah>
2.升级数据库
3.添加数据
4.更新数据
5.删除数据
6.查询数据
使用adb shell 对数据库和表的创建情况检查
-
adb是Android SDK中自带的一个调试工具,使用这个工具可以直接对连接在电脑上的Android设备或者模拟器 进行调试操作,它存放的位置是 SDK的platform-tool目录下,注意:如果想要在cmd命令行中使用adb工具,首先要把它的路径配置到环境变量中。
-
在cmd界面输入 adb shell, 会进入到Android设备的控制台,然后通过cd命令进入到:cd /data/data/
/databases/目录下,可以通过ls命令查看目录下的所有文件。 -
通过sqlite命令打开数据库:sqlite3 bookstore.db
-
此外,还有别的方法,可以将db文件push出来,然后再用相关sqlite软件打开,相对会更加直观。
同步简书:http://www.jianshu.com/u/4d807172fac7