基于Android java实现创建DAO类对Sqlite数据库的增删改查操作进行封装,给出源码
时间: 2024-01-21 21:02:46 浏览: 101
好的,以下是一个基于Android Java实现的简单的DAO类对SQLite数据库进行增删改查操作的封装的源码示例:
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "my_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) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
COLUMN_NAME + " TEXT," +
COLUMN_AGE + " INTEGER);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Upgrade database schema
}
}
public class MyDao {
private MyDatabaseHelper dbHelper;
public MyDao(Context context) {
dbHelper = new MyDatabaseHelper(context);
}
public long insert(String name, int age) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MyDatabaseHelper.COLUMN_NAME, name);
values.put(MyDatabaseHelper.COLUMN_AGE, age);
long id = db.insert(MyDatabaseHelper.TABLE_NAME, null, values);
db.close();
return id;
}
public boolean update(int id, String name, int age) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MyDatabaseHelper.COLUMN_NAME, name);
values.put(MyDatabaseHelper.COLUMN_AGE, age);
int rows = db.update(MyDatabaseHelper.TABLE_NAME, values, MyDatabaseHelper.COLUMN_ID + "=?", new String[]{String.valueOf(id)});
db.close();
return rows > 0;
}
public boolean delete(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
int rows = db.delete(MyDatabaseHelper.TABLE_NAME, MyDatabaseHelper.COLUMN_ID + "=?", new String[]{String.valueOf(id)});
db.close();
return rows > 0;
}
public Cursor queryAll() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(MyDatabaseHelper.TABLE_NAME, null, null, null, null, null, null);
return cursor;
}
}
```
在这个示例中,我们先创建了一个`MyDatabaseHelper`类,它继承自`SQLiteOpenHelper`,用于创建和升级数据库。然后我们创建了一个`MyDao`类,它用于对`MyDatabaseHelper`创建的数据库进行增删改查操作的封装。在`MyDao`类中,我们实现了以下方法:
- `insert`方法用于向数据库中插入一条记录;
- `update`方法用于更新数据库中的一条记录;
- `delete`方法用于从数据库中删除一条记录;
- `queryAll`方法用于查询数据库中的所有记录。
这些方法中,我们都使用了`SQLiteDatabase`类的方法来实现对数据库的操作。在每个方法中,我们都会获取一个可写或可读的数据库对象,执行相应的操作,并在操作完成后关闭数据库连接。
注意,在使用`Cursor`对象查询数据库的时候,需要在使用完毕后将其关闭,以释放资源,避免内存泄漏。
阅读全文