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

P. *_*ohm 14 java android ormlite

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

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

但我必须编译应用程序.

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

Gra*_*ray 19

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

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

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

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

编辑:

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

  • 这很慢,在10个表上大约需要30秒,context.deleteDatabase是即时的 (2认同)

Jul*_*lia 5

你可以打电话

context.deleteDatabase(DATABASE_NAME);
Run Code Online (Sandbox Code Playgroud)

在你的DatabaseHelper课程中延伸OrmLiteSqliteOpenHelper.context传递给DatabaseHelper构造函数中的类.

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

@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)
Run Code Online (Sandbox Code Playgroud)

叫做.

  • 如果我使用这个,那么ormLite没有看到更改,我必须杀死并重新打开应用程序才能看到,是否有某种方法强制ormLite刷新并看到没有数据库所以它会重新创建它? (3认同)