sql >> データベース >  >> RDS >> Mysql

sqliteandroidに複数の行を挿入する方法

    より良い構造は、メソッドの外部にdb参照を作成し、それを参照として渡すことです。

    SQLiteDatabase db = this.getWritableDatabase();
    db.beginTransaction();
    
    // your for loop
    
    db.setTransactionSuccessful();
    db.endTransaction();
    

    ==============複数行の挿入に使用されるものを以下で確認してください:

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

    より良い解決策は、SQLiteDatabaseによって提供されるメソッドで実行できる場合は、生のクエリの使用を避けることです。 。



    1. MacでMysqlを起動できません

    2. 1つのフィールドに同じ値を持つテーブルから行を選択する

    3. MariaDBバックアップをクラウドに保存するためのヒント

    4. ランダムな行を選択するための最良の方法PostgreSQL