使用ormlite库以编程方式擦除sqlite数据库的数据

时间:2012-02-16 09:42:53

标签: java android ormlite

我正在寻找一种方法来清除ormlite数据库的所有数据,或者在android上使用ormlite删除数据库(然后重新创建它)。

目前,我只能更改DatabaseHelper的DATABASE_VERSION。

但我必须编译应用程序。

有人知道处理这种情况的方法吗?

3 个答案:

答案 0 :(得分:19)

  

我正在寻找一种方法来清除ormlite数据库的所有数据,或者在android上使用ormlite删除数据库(然后重新创建它)。

@p Julia的答案会很好用。 ORMLite还支持从表中删除所有行的TableUtils.clearTable() method call

这不会清除数据库,但您可以依次清除每个表。如下所示:

  

TableUtils.clearTable(getConnectionSource(),YourClassHere.class);

修改

@ max4ever指出context.deleteDatabase(...)比清除数据库的其他方式快得多。但是,当TableUtils.clearTable(...)保持架构完整时,此调用将删除表定义。

答案 1 :(得分:5)

你可以打电话

context.deleteDatabase(DATABASE_NAME);

在您DatabaseHelper的{​​{1}}类中延伸OrmLiteSqliteOpenHelpercontext将传递给构造函数中的DatabaseHelper类。

下次需要数据库时,会重新创建并

@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)

被召唤。

答案 2 :(得分:3)

要删除数据库,请使用以下命令:

this.connectionSource.close();
context.deleteDatabase(DATABASE_NAME);

要重新创建/打开当前数据库,请使用以下命令:

SQLiteDatabase db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
this.connectionSource = new AndroidConnectionSource(db);

您必须在数据库助手中保留对上下文的引用。