Android SQLite 数据库介绍与使用
引言
在移动应用开发中,数据的存储与管理是非常重要的一部分。而移动设备的存储空间相对较小,因此需要一种轻量级的数据库来存储和管理数据。Android平台提供了一个内置的SQLite数据库,它是一个基于文件的关系型数据库,被广泛用于Android应用的数据存储。
本文将详细介绍Android SQLite数据库的基本概念,以及如何在Android应用中使用SQLite数据库进行数据存储和管理。
SQLite 简介
SQLite是一种嵌入式的关系型数据库,它不需要独立的服务器进程,而是将整个数据库作为一个文件存储在设备上。SQLite数据库的特点如下:
- 轻量级:SQLite数据库非常小巧,不需要额外的配置和管理。它只是一个库文件,可以直接嵌入到应用中。
- 高效:SQLite数据库的查询和操作速度非常快,适用于移动设备的资源受限环境。
- 支持标准的SQL语言:SQLite数据库支持标准的SQL语法,包括创建表、插入数据、查询数据等功能。
Android 中使用 SQLite
在Android中使用SQLite数据库需要借助于android.database.sqlite
包中的类,这些类提供了对SQLite数据库的操作和管理。下面是一个使用SQLite数据库的示例代码:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS users " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, " +
"age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS users");
onCreate(db);
}
}
上述代码示例中定义了一个DBHelper
类,它继承自SQLiteOpenHelper
类。SQLiteOpenHelper
是一个辅助类,用于管理数据库的创建和版本升级。
在DBHelper
类中,我们重写了onCreate
方法和onUpgrade
方法。onCreate
方法用于创建数据库和初始表格,而onUpgrade
方法用于更新数据库结构。
在onCreate
方法中,通过db.execSQL
方法执行SQL语句创建表格。上述代码示例中创建了一个名为"users"的表格,包含id、name和age三个字段。
在onUpgrade
方法中,我们首先删除原有的表格(如果存在),然后调用onCreate
方法重新创建新的表格。
使用 SQLite 数据库
在应用中使用SQLite数据库需要进行一系列的操作,包括创建数据库、创建表格、插入数据、查询数据等。下面是一些常用的代码示例:
创建数据库
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
上述代码中,我们创建了一个DBHelper
对象,并调用getWritableDatabase
方法获取可写的数据库实例。
创建表格
db.execSQL("CREATE TABLE IF NOT EXISTS users " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, " +
"age INTEGER)");
上述代码中使用execSQL
方法执行SQL语句,创建一个名为"users"的表格。
插入数据
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 25);
long rowId = db.insert("users", null, values);
上述代码中,我们首先创建一个ContentValues
对象,用于存储要插入的数据。然后使用insert
方法将数据插入到表格中,并返回插入的行号。
查询数据
String[] projection = {"id", "name", "age"};
String selection = "name = ?";
String[] selectionArgs = {"John"};
Cursor cursor = db.query("users", projection, selection, selectionArgs, null, null, null);
上述代码中,我们定义了要查询的字段(