Android studio中SQLite 数据库及表的创建与更新的实验操作过程
时间: 2024-01-24 08:17:35 浏览: 223
基于Android的SQLite数据库操作Demo
下面是在 Android Studio 中创建和更新 SQLite 数据库及表的实验操作过程:
1. 创建数据库
在 Android Studio 中,首先需要创建一个继承自 SQLiteOpenHelper 的类。这个类用于创建和管理数据库和表,可以在其中重写 onCreate() 和 onUpgrade() 方法。
```
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "myDatabase";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE myTable ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "name TEXT NOT NULL, "
+ "age INTEGER NOT NULL"
+ ")";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropTableQuery = "DROP TABLE IF EXISTS myTable";
db.execSQL(dropTableQuery);
onCreate(db);
}
}
```
在 onCreate() 方法中,我们创建了一个名为 myTable 的表,包含三个字段:_id、name 和 age。其中,_id 是主键,自增长;name 和 age 分别是文本和整数类型。
2. 插入数据
创建完数据库和表之后,我们可以在应用中插入数据。
```
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 20);
db.insert("myTable", null, values);
values.clear();
values.put("name", "李四");
values.put("age", 25);
db.insert("myTable", null, values);
dbHelper.close();
```
首先,我们创建了一个 MyDatabaseHelper 实例,并调用其 getWritableDatabase() 方法获取一个可写的数据库对象。然后,我们使用 ContentValues 对象插入两条数据到 myTable 表中。最后,记得关闭数据库。
3. 查询数据
查询数据可以使用 SQLiteDatabase 的 query() 方法。例如,我们可以查询年龄小于等于 25 的所有人的姓名和年龄:
```
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {"name", "age"};
String selection = "age <= ?";
String[] selectionArgs = {"25"};
String sortOrder = "age DESC";
Cursor cursor = db.query("myTable", projection, selection, selectionArgs,
null, null, sortOrder);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndexOrThrow("name"));
int age = cursor.getInt(cursor.getColumnIndexOrThrow("age"));
Log.d(TAG, "Name: " + name + ", Age: " + age);
}
cursor.close();
dbHelper.close();
```
首先,我们创建了一个 MyDatabaseHelper 实例,并调用其 getReadableDatabase() 方法获取一个可读的数据库对象。然后,我们使用 query() 方法查询 myTable 表中年龄小于等于 25 的所有人的姓名和年龄,并按年龄降序排列。最后,我们使用 Cursor 对象遍历查询结果,并输出每个人的姓名和年龄。
4. 更新数据
更新数据可以使用 SQLiteDatabase 的 update() 方法。例如,我们可以将年龄为 20 的人的姓名改为“王五”:
```
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "王五");
String whereClause = "age = ?";
String[] whereArgs = {"20"};
db.update("myTable", values, whereClause, whereArgs);
dbHelper.close();
```
首先,我们创建了一个 MyDatabaseHelper 实例,并调用其 getWritableDatabase() 方法获取一个可写的数据库对象。然后,我们创建一个 ContentValues 对象,将要更新的数据放入其中。接着,我们使用 update() 方法将年龄为 20 的人的姓名改为“王五”。最后,记得关闭数据库。
5. 删除数据
删除数据可以使用 SQLiteDatabase 的 delete() 方法。例如,我们可以删除年龄小于等于 25 的所有人的数据:
```
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
String whereClause = "age <= ?";
String[] whereArgs = {"25"};
db.delete("myTable", whereClause, whereArgs);
dbHelper.close();
```
首先,我们创建了一个 MyDatabaseHelper 实例,并调用其 getWritableDatabase() 方法获取一个可写的数据库对象。然后,我们使用 delete() 方法删除年龄小于等于 25 的所有人的数据。最后,记得关闭数据库。
阅读全文