sql >> Base de Datos >  >> RDS >> SQLite

Android SQLite:¿Cómo generar una tabla grande para fines de prueba?

Debe usar transacciones al escribir en una base de datos sqlite, de lo contrario, persistirá los datos para cada inserción, es decir, guárdelos en sd, lo que tomará "para siempre".

por ejemplo, haga que insertProduct tome una lista de productos y los guarde en una transacción:

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

Así es como puede implementarlo en su código existente:

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