SQLite
 sql >> Database >  >> RDS >> SQLite

Android SQLite:come generare una tabella grande a scopo di test?

È necessario utilizzare le transazioni quando si scrive su un database sqlite, altrimenti i dati persisteranno per ogni inserimento, ovvero li salveranno su sd che impiegherà "per sempre".

ad esempio, fai in modo che insertProduct prenda un elenco di prodotti e li salvi in ​​un'unica transazione:

private void insertProducts(List<Product> products) {
    try {
        db.beginTransaction();
        for(Product product : products) {
            insertProduct(...);
        }
        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }
}

Ecco come puoi implementarlo nel tuo codice esistente:

private void insertDemoProducts() {
    SQLiteDatabase sqlDB = database.getWritableDatabase();
    try {
        sqlDB.beginTransaction();
        for (int i = 1; i <= 100000; ++i) {
            String id = Integer.toString(i);
            insertProduct(id, "Test product " + id, "100", "75.50", "70.27");
        }
        sqlDB.setTransactionSuccessful();
    } finally {
        sqlDB.endTransaction();
    }
}