[英]Android SQLiteDataBase: How to read datasets?
使用Android的SQLiteDatabase
类令我非常沮丧。
我有一个名为db.sqlite
的测试数据库,已使用SQLiteOpenHelper
类将其导入到data/data/[my.app.namespace]/databse
文件夹中。 ( 此处显示 )
现在,我希望能够查询该数据库。 我应该为此创建另一个助手类吗? 我的意思是,如果要使用execSQL
方法,则应使用SQLiteDatabase
类,但不能创建它的子类!
我要进行Android编程。
PS:我猜对于SELECT
语句,这是完全不同的。 我想获取一些数据。 我应该怎么做?
如果您希望能够在数据库类中使用execSQL或插入/更新/删除,则需要添加以下函数:
public boolean executeQuery(String tableName,ContentValues values){
return execQuery(tableName,values);
}
private boolean execQuery(String tableName,ContentValues values){
sqliteDb = instance.getWritableDatabase();
sqliteDb.beginTransaction();
sqliteDb.insert(tableName, "null", values);
sqliteDb.setTransactionSuccessful();
sqliteDb.endTransaction();
return true;
}
public boolean updateSQL(String tableName,ContentValues values, String where, String[] args){
return updateData(tableName,values,where,args);
}
private boolean updateData(String tableName,ContentValues values, String where, String[] args){
sqliteDb = instance.getWritableDatabase();
sqliteDb.update(tableName, values, where, args);
return true;
}
public boolean deleteSQL(String tableName,String where, String[] args){
return deleteData(tableName, where, args);
}
private boolean deleteData(String tableName,String where, String[] args){
sqliteDb = instance.getWritableDatabase();
sqliteDb.beginTransaction();
sqliteDb.delete(tableName, where, args);
sqliteDb.setTransactionSuccessful();
sqliteDb.endTransaction();
return true;
}
public Cursor executeSQLQuery(String query){
Cursor c = sqliteDb.rawQuery(query,null);
return c;
}
public void executeSQL(String query){
sqliteDb.execSQL(query);
}
我正在使用同一个类,并且添加了这些功能,它们正在工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.