Android封装SQLite数据库操作
在Android开发中,常常需要使用数据库来存储和管理数据。而Android官方提供了SQLite作为一个轻量级数据库管理工具。但是,直接使用SQLite进行数据库操作,往往会导致增删改查代码重复、拼写错误、容易出现SQL注入、SQLite API 的麻烦等问题。因此,我们需要封装SQLite数据库操作,以提高代码可重用性和可读性。
一、原理
在Android中,SQLite数据库的操作一般分为以下几步:
创建或打开一个数据库。
创建一张表并定义属性。
插入数据。
更新数据。
删除数据。
查询数据。
在封装SQLite数据库操作时,可以通过建立一个公共类,将这些操作封装在里面。这里以封装查询为例,具体步骤如下:
1.创建数据库和表
我们可以在公共类中封装一个方法用来创建数据库和表。
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "mydatabase.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS testtable(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
上面的代码中,我们首先创建了一个 DBHelper 类,并继承自SQLiteOpenHelper。然后通过重写 onCreate 和 onUpgrade 方法来创建数据库和数据库表。
2.查询数据
封装查询数据的方法如下:
public Cursor queryData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.query("testtable", null, null, null, null, null, null);
return cursor;
}
上面的代码中,我们首先获取可写的数据库对象,然后使用该对象的 query 方法来查询数据。
3.调用方法
最后,我们可以在程序的使用处直接使用查询方法:
DBHelper dbHelper = new DBHelper(getApplicationContext());
Cursor cursor = dbHelper.queryData();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
}
上面的代码中,我们首先创建了一个 DBHelper 对象,并通过该对象调用 queryData 方法来查询数据。最后,我们通过遍历返回的游标对象来