Android SQLiteDataBase: как читать наборы данных? - PullRequest
0 голосов
/ 21 февраля 2012

Я очень разочарован, используя класс Android SQLiteDatabase.
У меня есть тестовая база данных с именем db.sqlite, которую я импортировал в папку data/data/[my.app.namespace]/databse, используя класс SQLiteOpenHelper.(Показано здесь )
Теперь я хочу иметь возможность запрашивать эту базу данных.Должен ли я создать еще один класс помощника для этого?Я имею в виду, что если я хочу использовать метод execSQL, я должен использовать класс SQLiteDatabase, но не могу создать его подкласс!
Я занимаюсь программированием на Android.

PS: Я думаю, дляSELECT утверждение это совершенно другое.Я хочу получить некоторые данные.Как мне это сделать?

1 Ответ

0 голосов
/ 21 февраля 2012

Если вы хотите использовать 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);
}

Я использую тот же класс идобавил эти функции и они работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...