SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Android SQLite:Como gerar uma tabela grande para fins de teste?


Você precisa usar transações ao gravar em um banco de dados sqlite, caso contrário, ele persistirá os dados para cada inserção, ou seja, salve-os em sd, o que levará "para sempre".

por exemplo, faça insertProduct pegar uma lista de produtos e salvá-los em uma transação:
private void insertProducts(List<Product> products) {
    try {
        db.beginTransaction();
        for(Product product : products) {
            insertProduct(...);
        }
        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }
}

É assim que você pode implementá-lo em seu 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();
    }
}