安卓 sqlite 数据库操作实例 (增删改查 + 数据存储) 2024 最全攻略!
一、创建数据库
在安卓中创建 sqlite 数据库需要使用 SQLiteOpenHelper 类。以下是一个简单的创建数据库的代码示例:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "my_database.db";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表的 SQL 语句
String createTableSql = "CREATE TABLE IF NOT EXISTS my_table (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);";
db.execSQL(createTableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级时的操作
String dropTableSql = "DROP TABLE IF EXISTS my_table;";
db.execSQL(dropTableSql);
onCreate(db);
}
}
二、插入数据
插入数据到 sqlite 数据库可以使用 insert()方法。以下是一个插入数据的代码示例:
MyDatabaseHelper helper = new MyDatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 25);
long rowId = db.insert("my_table", null, values);
if (rowId!= -1) {
Log.d("Database", "Inserted row ID: " + rowId);
} else {
Log.d("Database", "Failed to insert row");
}
db.close();
三、查询数据
查询数据可以使用 query()方法。以下是一个查询数据的代码示例:
MyDatabaseHelper helper = new MyDatabaseHelper(context);
SQLiteDatabase db = helper.getReadableDatabase();
String[] columns = {"id", "name", "age"};
String selection = "age >?";
String[] selectionArgs = {"18"};
Cursor cursor = db.query("my_table", columns, selection, selectionArgs, null, null, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.d("Database", "ID: " + id + ", Name: " + name + ", Age: " + age);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
四、更新数据
更新数据可以使用 update()方法。以下是一个更新数据的代码示例:
MyDatabaseHelper helper = new MyDatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("age", 30);
String selection = "name =?";
String[] selectionArgs = {"John"};
int rowsAffected = db.update("my_table", values, selection, selectionArgs);
if (rowsAffected > 0) {
Log.d("Database", "Updated " + rowsAffected + " rows");
} else {
Log.d("Database", "No rows updated");
}
db.close();
五、删除数据
删除数据可以使用 delete()方法。以下是一个删除数据的代码示例:
MyDatabaseHelper helper = new MyDatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
String selection = "age ";
String[] selectionArgs = {"30"};
int rowsAffected = db.delete("my_table", selection, selectionArgs);
if (rowsAffected > 0) {
Log.d("Database", "Deleted " + rowsAffected + " rows");
} else {
Log.d("Database", "No rows deleted");
}
db.close();
通过以上代码示例,你可以了解到安卓 sqlite 数据库的基本操作,包括创建数据库、插入数据、查询数据、更新数据和删除数据。在实际开发中,你可以根据自己的需求进行相应的操作。
以下是几个与安卓 sqlite 数据库操作相关的问题: 1. 如何在安卓中处理 sqlite 数据库的并发问题? 2. 安卓 sqlite 数据库的性能优化方法有哪些? 3. 如何在安卓中备份和恢复 sqlite 数据库? 4. 安卓 sqlite 数据库的索引优化策略有哪些?