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

问题描述 投票:14回答:3

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

这时,我只能更改DatabaseHelper的DATABASE_VERSION。

但我必须编译应用程序。

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

java android ormlite
3个回答
19
投票

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

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

这不会清除数据库,但您可以依次清除每个表。类似于以下内容:

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

编辑:

@ max4ever指出context.deleteDatabase(...)比其他清理数据库的方式要快得多。但是这个调用将删除表定义,而TableUtils.clearTable(...)保留模式完整。


5
投票

你可以打电话

context.deleteDatabase(DATABASE_NAME);

在你的DatabaseHelper类中扩展OrmLiteSqliteOpenHelpercontext被传递给构造函数中的DatabaseHelper类。

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

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

叫做。


3
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.