Android SQLiteDataBase:如何读取数据集?

时间:2012-02-21 12:20:27

标签: android sqlite

我在这里使用Android的SQLiteDatabase课非常沮丧 我有一个名为db.sqlite的测试数据库,我使用data/data/[my.app.namespace]/databse类导入到SQLiteOpenHelper文件夹。 (证明here
现在我希望能够查询该数据库。我应该为此创建另一个助手类吗?我的意思是如果想要使用execSQL方法我应该使用SQLiteDatabase类但是我无法创建它的子类!
我是Android编程。

P.S:我想SELECT这句话完全不同。我想要获取一些数据。我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您希望能够在数据库类中使用execSQL或insert / update / delete,则需要添加以下函数:

    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);
}

我正在使用相同的课程,我已经添加了这些功能,但他们正在工作。