SQLite
 sql >> Base de données >  >> RDS >> SQLite

Android SQLite :comment générer une grande table à des fins de test ?

Vous devez utiliser des transactions lors de l'écriture dans une base de données sqlite, sinon les données seront conservées pour chaque insertion, c'est-à-dire les enregistrer sur sd, ce qui prendra "pour toujours".

par exemple, faites en sorte que insertProduct prenne une liste de produits et les enregistre en une seule transaction :

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

Voici comment vous pouvez l'implémenter dans votre code existant :

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