Android数据存储方式—SQLite
- 版权声明:本文为博主原创文章,未经博主允许不得转载。
SQLite
- Android平台嵌入了一个关系型数据库SQLite,和其他数据库不同的是:SQLite存储数据时,不需要指定数据类型
一个字段声明为Integer类型,我们可以将一个字符串存入;一个字段声明为Boolean,我们也可以存入浮点数。
除非是主键被定义为integer,这时只能存储64位整数。
SQLite只支持5种数据类型:null,integer,real,text,blob
SQLite数据库操作
- SQLite不需要创建数据库
直接在adb shell中,使用sqlite3命令会自动创建一个数据库
sqlite3命令存放目录:sdk/tools/sqlite3.exe
eg:sqlite3/mnt/sdcard/test.db。在sdcard目录下创建了一个test数据库db为数据库的后缀名,可以换成其他的
- 创建表
创建表的时候,可以不指定数据类型
create table users(_id integer primary key autoincrement,name,age)
主键建议使用_id
SQLite支持大部分标准的SQL语句,增删改查语句都是通用的,分页查询和MySQL相同
也可以使用第三方图形用户外界面操作数据库
Android使用数据库所涉及到的API
Android中不再使用JDBC方式来访问数据库,而是采用了一套新的API
创建数据库
自定义类继承SQLiteOpenHelper
/**
* Created by Administrator on 2017/2/6.
*/
public class DbHelper extends SQLiteOpenHelper {
/**
* @param context 上下文Context
* @param name 数据库名字(文件名)
* @param factory 数据库工厂(NULL)
* @param version 数据库版本
*/
public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 创建表的操作
* @param sqLiteDatabase
*/
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//创建表
sqLiteDatabase.execSQL("create table person(_id integer primary key autoincrement,name,age)");
}
/**
* 数据库的版本:底----》高
* @param sqLiteDatabase
* @param i
* @param i1
*/
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
在MainActivity类创建该对象,调用getWritableDatabase()或者getReadableDatabase(