下面我将为大家详细介绍如何在Android应用中内嵌SQLite数据库的基本操作指南。具体内容如下:
1. 什么是SQLite
SQLite是一款轻量级的关系型数据库管理系统,它被嵌入在应用程序中,可以在没有服务器的情况下进行本地数据库存储,常用于移动应用的本地数据库存储和Web应用的内嵌数据库存储中。
2. 如何在Android应用中使用SQLite
首先,在你的Android应用中添加SQLite的依赖库,例如:
dependencies {
implementation 'com.android.support:support-core-utils:x.x.x'
implementation 'com.android.support:support-sqlite:x.x.x'
}
接着,在应用启动的时候,你需要创建一个SQLite数据库,并创建一个或多个数据表。例如:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "my_database";
private static final int DB_VERSION = 1;
private static final String CREATE_TABLE_USER = "create table user (_id integer primary key autoincrement, name text, age int)";
public MyDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_USER);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级操作
}
}
然后,通过SQLiteOpenHelper类中的getWritableDatabase()方法获取数据库对象,然后执行操作。例如:
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 20);
long rowId = db.insert("user", null, values);
// 查询数据
Cursor cursor = db.query("user", new String[]{"_id", "name", "age"}, "age>?", new String[]{"18"}, null, null, null);
while(cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
// 数据处理操作
}
// 更新数据
ContentValues updateValues = new ContentValues();
updateValues.put("name", "李四");
db.update("user", updateValues, "_id=?", new String[]{rowId+""});
// 删除数据
db.delete("user", "_id=?", new String[]{rowId+""});
3. 示例说明
示例1:保存应用设置
例如,我们可以在应用中保存一些设置,例如是否开启推送、是否记住密码等信息。我们可以在MyApplication类的onCreate()方法中初始化数据库,并添加一个表来保存这些设置。例如:
public class MyApplication extends Application {
private static final String DB_NAME = "app_settings";
private static final int DB_VERSION = 1;
private static final String CREATE_TABLE_APP_SETTINGS = "create table app_settings (_id integer primary key autoincrement, setting_name text, setting_value text)";
private SQLiteDatabase mDatabase;
public SQLiteDatabase getDatabase() {
return mDatabase;
}
@Override
public void onCreate() {
super.onCreate();
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, DB_NAME, null, DB_VERSION);
mDatabase = dbHelper.getWritableDatabase();
mDatabase.execSQL(CREATE_TABLE_APP_SETTINGS);
}
}
然后,在应用的设置界面中,我们可以通过下面的代码将用户的设置保存到数据库中:
ContentValues values = new ContentValues();
values.put("setting_name", "push_enabled");
values.put("setting_value", mPushEnabled ? "1" : "0");
mDatabase.insert("app_settings", null, values);
示例2:缓存用户信息
例如,我们可以在应用中缓存用户信息,以便下次打开应用时可以自动登录。我们可以添加一个user表来保存用户信息。例如:
private static final String CREATE_TABLE_USER = "create table user (_id integer primary key autoincrement, username text, password text)";
然后,在用户登录成功后,我们可以将用户信息保存到user表中:
ContentValues values = new ContentValues();
values.put("username", username);
values.put("password", password);
mDatabase.insert("user", null, values);
在下次启动应用时,我们可以读取user表中的用户信息,并自动登录。例如:
Cursor cursor = mDatabase.query("user", new String[]{"username", "password"}, null, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
String username = cursor.getString(cursor.getColumnIndex("username"));
String password = cursor.getString(cursor.getColumnIndex("password"));
// 自动登录操作
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android应用中内嵌SQLite数据库的基本操作指南 - Python技术站