Android SQLite数据库是一种轻量级的数据库,适用于在移动开发中存储少量数据。本文将详细讲解Android SQLite数据库的增删改查操作,方便开发者更好地利用SQLite存储数据。
创建数据库
在使用SQLite数据库前,首先需要创建一个数据库。可以通过继承SQLiteOpenHelper类并实现onCreate()方法和onUpgrade()方法来创建和升级数据库。
如下所示是一个创建数据库及表的示例:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "myDatabase.db";
private static final int DATABASE_VERSION = 1;
private static final String CREATE_TABLE = "CREATE TABLE myTable "
+ "(id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "name TEXT NOT NULL, "
+ "age INTEGER NOT NULL)";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS myTable");
onCreate(db);
}
}
在这个示例中,定义了一个MyDatabaseHelper类来实现创建和升级数据库。创建数据库的语句定义在CREATE_TABLE字符串中,该语句将创建一个名为myTable的表,并包含id、name和age三列。在onCreate()方法中,执行db.execSQL(CREATE_TABLE)来创建表。在onUpgrade()方法中,执行db.execSQL("DROP TABLE IF EXISTS myTable");将删除旧版本的表,并调用onCreate()方法创建新表。
数据库增删改查操作示例
增加数据
可以通过调用SQLiteDatabase的insert()方法向表中新增数据。insert()方法的第一个参数是表名,第二个参数是空列的默认值,第三个参数是待插入的数据。
下面是一个向myTable表中插入数据的示例:
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 25);
long result = db.insert("myTable", null, values);
if (result == -1) {
Toast.makeText(context, "添加数据失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "添加数据成功", Toast.LENGTH_SHORT).show();
}
在这个示例中,创建了一个ContentValues对象,用于存储待插入的数据,put()方法用于设置name和age值。然后调用db.insert("myTable", null, values)将数据插入到myTable表中。如果插入成功,则会返回新增数据的id值;如果插入失败,则会返回-1。
删除数据
可以通过调用SQLiteDatabase的delete()方法来删除表中的数据。delete()方法的第一个参数为表名,第二个参数为删除条件,第三个参数为删除条件的占位符值。
下面是一个从myTable表中删除数据的示例:
String[] whereArgs = {"2"};
int result = db.delete("myTable", "id=?", whereArgs);
if (result == -1) {
Toast.makeText(context, "删除数据失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "删除数据成功", Toast.LENGTH_SHORT).show();
}
在这个示例中,创建whereArgs数组,用于存储删除条件的占位符。然后调用db.delete("myTable", "id=?", whereArgs)删除id为2的数据。如果删除成功,则会返回删除的行数;如果删除失败,则会返回-1。
修改数据
可以通过调用SQLiteDatabase的update()方法来修改表中的数据。update()方法的第一个参数为表名,第二个参数为修改的数据,第三个参数为修改条件,第四个参数为修改条件的占位符值。
下面是一个修改myTable表中数据的示例:
ContentValues values = new ContentValues();
values.put("name", "李四");
values.put("age", 30);
String[] whereArgs = {"1"};
int result = db.update("myTable", values, "id=?", whereArgs);
if (result == -1) {
Toast.makeText(context, "修改数据失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "修改数据成功", Toast.LENGTH_SHORT).show();
}
在这个示例中,创建一个ContentValues对象来存储将要修改的数据,put()方法用于设置name和age值。然后调用db.update("myTable", values, "id=?", whereArgs)来将id为1的数据修改为新的数据。如果修改成功,则会返回修改的行数;如果修改失败,则会返回-1。
查询数据
可以通过调用SQLiteDatabase的query()方法来查询表中的数据。query()方法的第一个参数为表名,第二个参数为需要查询的列名,第三个参数为查询条件,第四个参数为查询条件的占位符值,第五个参数为查询结果排序方式。
下面是一个将myTable表中的数据查询出来的示例:
Cursor cursor = db.query("myTable", new String[]{"id", "name", "age"},
null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.d(TAG, "查询数据成功,id:" + id + ",name:" + name + ",age:" + age);
}
cursor.close();
} else {
Toast.makeText(context, "表中没有数据", Toast.LENGTH_SHORT).show();
}
在这个示例中,调用db.query("myTable", new String[]{"id", "name", "age"}, null, null, null, null, null)来查询所有数据,将查询结果存储在Cursor对象中。然后遍历Cursor对象,通过getColumnIndex()方法和getInt()、getString()方法来获取数据。如果查询到数据,则会将数据打印到log中;如果没有查询到数据,则会提示表中没有数据。
通过以上的示例,我们可以实现Android SQLite数据库的增删改查操作,并且这些操作都是基础操作,可以方便地满足大多数需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android SQLite数据库增删改查操作的使用详解 - Python技术站