(一)Android数据存储————文件存储(内部存储):https://blog.csdn.net/sinat_29675423/article/details/85699131
(二)Android数据存储————文件存储(外部存储):https://blog.csdn.net/sinat_29675423/article/details/85705545
(三)Android数据存储————SharedPreference使用及封装:https://blog.csdn.net/sinat_29675423/article/details/85778297
本文简介SQLite数据库的创建及增删改查操作。
存储特点
SQLite非常容易上手,不需要服务器也不需要复杂配置的小型的、单文件形式的数据库。它效率高、开源跨平台、支持事务操作、可嵌入…总之很受欢迎。
存储位置
数据库为.db文件,存在data/data/<package_name>/databases/,里面可以存放数据表。
数据库查看
这里以sqlite3为例,简述在command中查看数据库及表中内容:
- 进入数据库目录 databases (cd data/data/包名/databases)
- 进入数据库 studentStore (sqlite3 studentStore)
- 接下来就可以用sql语句进行操作
- 比如:查看数据库中的表 tables (.tables)
- 比如:查看表中的所有数据 (select * from table;)
存储数据类型
类型 | 描述 |
---|---|
INTEGER | 一个带符号的整数 |
NULL | 一个 NULL 值 |
REAL | 一个浮点值 |
TEXT | 一个文本字符串 |
数据库创建
需要理解下面两个重要的类,具体可到android developer官网查看api开发文档。
- SQLiteOpenHelper:A helper class to manage database creation and version management.You create a subclass implementing onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) and optionally onOpen(SQLiteDatabase), and this class takes care of opening the database if it exists, creating it if it does not, and upgrading it as necessary. Transactions are used to make sure the database is always in a sensible state.
- SQLiteDataBase:SQLiteDatabase has methods to create, delete, execute SQL commands, and perform other common database management tasks.
————摘自android developer API说明
SQLiteOpenHelper的常用方法:
构造函数: DataBaseHelper(Context context, String DataBasename, SQLiteDatabase.CursorFactory factory, int version)
创建方法: onCreate()
更新升级方法:onUpdate()
获取SQLiteDataBase对象:getWritableDatabase()
实现一个类,继承自SQLiteOpenHelper(SQLiteDataBase的帮助类)
public class DataBaseHelper extends SQLiteOpenHelper {
//创建一个名叫Student的表,字段有_id, name, class, age
private static final String CREATE_STUDENT = "create table Student("+
"_id integer primary key autoincrement," + "name text,"+
"class text,"+ "age Integer)";
private Context mcontext;
public DataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.mcontext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建
db.execSQL(CREATE_STUDENT);
Toast.makeText(mcontext,"数据库创建成功"