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

发布于 2025-01-05 23:09:39 字数 169 浏览 1 评论 0原文

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

这个时候我只能更改DatabaseHelper的DATABASE_VERSION。

但我必须编译该应用程序。

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

I'd looking for a method to erase all data of a ormlite database or delete the database (and then recreate it) with ormlite on android.

At this time, I can only change the DATABASE_VERSION of the DatabaseHelper.

But I have to compile the application.

Does someone know a method to handle that case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

挖个坑埋了你 2025-01-12 23:09:39

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

@Julia 的回答会很好。 ORMLite 还支持 TableUtils.clearTable() 方法调用,它会从表中删除所有行:

这不会清除数据库,但您可以依次清除每个表。像下面这样:

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

编辑:

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

I'd looking for a method to erase all data of a ormlite database or delete the database (and then recreate it) with ormlite on android.

@Julia's answer will work well. ORMLite also supports a TableUtils.clearTable() method call which removes all rows from a table:

That won't clear a database but you can clear each table in turn. Something like the following:

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

Edit:

@max4ever pointed out that context.deleteDatabase(...) is a lot faster than other ways of clearing a database. But this call will remove the table definitions while TableUtils.clearTable(...) leaves the schema intact.

溺ぐ爱和你が 2025-01-12 23:09:39

您可以调用

context.deleteDatabase(DATABASE_NAME);

扩展了 OrmLiteSqliteOpenHelperDatabaseHelper 类。 context 被传递到构造函数中的 DatabaseHelper 类。

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

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

调用该数据库。

You can call

context.deleteDatabase(DATABASE_NAME);

in your DatabaseHelper class which extends OrmLiteSqliteOpenHelper. context is passed to the DatabaseHelper class in the constructor.

The next time the database is needed, it is recreated and

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

is called.

等待我真够勒 2025-01-12 23:09:39

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

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

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

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

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

To delete the database use these commands:

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

To recreate/open the current database use these commands:

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

You will have to keep a reference to the context in your database helper.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文