Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak wstawić wiele wierszy do sqlite android

Lepszą strukturą byłoby utworzenie referencji db poza metodą i przekazanie jej jako referencji:

SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();

// your for loop

db.setTransactionSuccessful();
db.endTransaction();

==============Sprawdź poniżej, który jest używany do wstawiania wielu wierszy:

// adb is SQLiteOpenHelper
JSONObject jsonObject = new JSONObject(response);
JSONArray foodsessions = jsonObject.getJSONArray("foodsessions");
int length = foodsessions.length();

for (int i = 0; i < length; i++) {
    JSONObject o = foodsessions.getJSONObject(i);
    String session = session_object.getString("sessionname");
    String start_time = session_object.getString("start_time");
    String end_time = session_object.getString("end_time");
    String session_id = session_object.getString("id");    

    SQLiteDatabase db = adb.getWritableDatabase();

    ContentValues newValues = new ContentValues();
    newValues.put(adb.ATTRIBUTE_session, session);
    newValues.put(adb.ATTRIBUTE_start_time, start_time);
    newValues.put(adb.ATTRIBUTE_end_time, end_time);
    newValues.put(adb.ATTRIBUTE_session_id, session_id);

    long res = db.insertWithOnConflict(adb.TABLE_NAME, null, newValues, SQLiteDatabase.CONFLICT_REPLACE);
    db.close();
}

Lepszym rozwiązaniem jest unikanie używania surowego zapytania, jeśli można to zrobić za pomocą metody dostarczonej przez SQLiteDatabase .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można uruchomić serwera MySQL - Proces kontrolny zakończony z kodem błędu

  2. MySQL zwiększa zmienną użytkownika, gdy zmienia się wartość

  3. Jak ustawić AUTO_INCREMENT w Laravel za pomocą Eloquent?

  4. Jak połączyć się z bazą danych za pomocą klienta Workbench MySQL

  5. Interakcja 2-tabelowa:wstaw, uzyskaj wynik, wstaw