Android 数据库操作封装,让开发更高效! (android 封装数据库操作)

在 Android 开发中,数据库操作是必不可少的一部分。程序员需要使用数据库存储数据,然后在需要的时候从数据库中取出数据来使用。这个过程可能会涉及到多个表的查询,插入数据和更新数据等操作。为了提高开发效率和代码可读性,我们可以使用封装好的数据库操作类来进行开发。

封装的好处

封装数据库操作的好处在于,我们可以在一个类中封装所有的数据库操作方法,这样可以减少代码冗余,提高代码可读性。另外,封装的类中可以定义一些通用的方法,比如数据表的创建、插入数据和更新数据等等。这样可以减少我们在开发中的重复代码,提高开发效率。

具体实现

封装数据库操作需要先定义一个 DBHelper 类,这个类用来处理所有的数据库操作。然后,在我们的 DAO 层中,我们可以通过调用这个 DBHelper 类中的方法来完成对数据库的操作。下面就来看一下具体实现的方法。

1. 定义 DBHelper 类

定义 DBHelper 类,这个类主要是实现了数据库的创建和升级功能。在我们的 DBHelper 类中,我们需要定义一个 Context 对象和一个 SQLiteDatabase 对象。

“`java

public class DBHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_NAME = “mydb.db”;

public DBHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

createTableOne(db);

createTableTwo(db);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL(“DROP TABLE IF EXISTS ” + TableOne.TABLE_NAME);

db.execSQL(“DROP TABLE IF EXISTS ” + TableTwo.TABLE_NAME);

onCreate(db);

}

private void createTableOne(SQLiteDatabase db) {

db.execSQL(TableOne.CREATE);

}

private void createTableTwo(SQLiteDatabase db) {

db.execSQL(TableTwo.CREATE);

}

}

“`

2. 定义数据表

定义数据表的时候,我们需要创建一个新的类,命名为 TableOne,然后在这个类中定义数据表的名称和列的名称。

“`java

public class TableOne {

public static final String TABLE_NAME = “table_one”;

public static final String ID = “id”;

public static final String NAME = “name”;

public static final String AGE = “age”;

public static final String CREATE =

“CREATE TABLE ” + TABLE_NAME + “(“

+ ID + ” INTEGER PRIMARY KEY,”

+ NAME + ” TEXT,”

+ AGE + ” INTEGER” + “)”;

}

“`

3. 实现查询、插入、删除和更新方法

接下来,我们需要在 DBHelper 类中封装一些常用的方法。这些方法包括查询、插入、删除和更新等等。

“`java

public class DBHelper extends SQLiteOpenHelper {

public Cursor query(String tableName, String[] columns, String selection, String[] selectionArgs, String orderBy) {

SQLiteDatabase db = this.getWritableDatabase();

return db.query(tableName, columns, selection, selectionArgs, null, null, orderBy);

}

public long insert(String tableName, ContentValues values) {

SQLiteDatabase db = this.getWritableDatabase();

return db.insert(tableName, null, values);

}

public int delete(String tableName, String selection, String[] selectionArgs) {

SQLiteDatabase db = this.getWritableDatabase();

return db.delete(tableName, selection, selectionArgs);

}

public int update(String tableName, ContentValues values, String selection, String[] selectionArgs) {

SQLiteDatabase db = this.getWritableDatabase();

return db.update(tableName, values, selection, selectionArgs);

}

}

“`

4. 调用 DBHelper 类中的方法

在我们的 DAO 类中,我们需要定义一个 DBHelper 类型的对象,然后通过这个对象来调用封装好的方法。下面是一个简单的使用示例。

“`java

public class UserDaoImpl {

private DBHelper dbHelper;

public UserDaoImpl(Context context) {

dbHelper = new DBHelper(context);

}

public void addUser(User user) {

ContentValues values = new ContentValues();

values.put(TableOne.NAME, user.getName());

values.put(TableOne.AGE, user.getAge());

dbHelper.insert(TableOne.TABLE_NAME, values);

}

public List getUsers() {

List userList = new ArrayList();

Cursor cursor = dbHelper.query(TableOne.TABLE_NAME, null, null, null, null);

if (cursor.moveToFirst()) {

do {

User user = new User();

user.setId(cursor.getInt(cursor.getColumnIndex(TableOne.ID)));

user.setName(cursor.getString(cursor.getColumnIndex(TableOne.NAME)));

user.setAge(cursor.getInt(cursor.getColumnIndex(TableOne.AGE)));

userList.add(user);

} while (cursor.moveToNext());

}

cursor.close();

return userList;

}

}

“`


数据运维技术 » Android 数据库操作封装,让开发更高效! (android 封装数据库操作)