如何用android实现增删改查
时间: 2023-07-19 17:41:12 浏览: 102
在 Android 中实现增删改查,一般需要以下步骤:
1. 创建一个数据库表,定义表的字段和类型。
2. 创建一个 `SQLiteOpenHelper` 类,用于创建数据库和表,并提供对数据库的访问。
3. 在 `SQLiteOpenHelper` 类中实现增删改查的方法,例如 `insert()`、`delete()`、`update()` 和 `query()` 等。
4. 在需要使用数据库操作的地方,先获取 `SQLiteOpenHelper` 的实例,然后调用相应的方法进行操作。
具体实现步骤如下:
1. 定义数据库表
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "my_database.db";
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "my_table";
private static final String COLUMN_ID = "_id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_AGE = "age";
public MyDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_AGE + " INTEGER)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
public long insert(String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
long id = db.insert(TABLE_NAME, null, values);
db.close();
return id;
}
public int delete(long id) {
SQLiteDatabase db = getWritableDatabase();
String whereClause = COLUMN_ID + "=?";
String[] whereArgs = {String.valueOf(id)};
int rows = db.delete(TABLE_NAME, whereClause, whereArgs);
db.close();
return rows;
}
public int update(long id, String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
String whereClause = COLUMN_ID + "=?";
String[] whereArgs = {String.valueOf(id)};
int rows = db.update(TABLE_NAME, values, whereClause, whereArgs);
db.close();
return rows;
}
public Cursor query() {
SQLiteDatabase db = getReadableDatabase();
String[] columns = {COLUMN_ID, COLUMN_NAME, COLUMN_AGE};
Cursor cursor = db.query(TABLE_NAME, columns, null, null, null, null, null);
return cursor;
}
}
```
2. 在需要使用数据库操作的地方,获取 `MyDatabaseHelper` 实例,并调用相应的方法进行操作。
```java
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
// 插入数据
long id = dbHelper.insert("张三", 20);
// 删除数据
int rows = dbHelper.delete(id);
// 更新数据
int rows = dbHelper.update(id, "李四", 25);
// 查询数据
Cursor cursor = dbHelper.query();
while (cursor.moveToNext()) {
long id = cursor.getLong(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_ID));
String name = cursor.getString(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_NAME));
int age = cursor.getInt(cursor.getColumnIndexOrThrow(MyDatabaseHelper.COLUMN_AGE));
Log.d(TAG, "id=" + id + ", name=" + name + ", age=" + age);
}
cursor.close();
```