【问题标题】:How to drop an ORMLite database?如何删除 ORMLite 数据库?
【发布时间】:2012-08-22 11:18:51
【问题描述】:

我想知道如何使用 ORMLite 删除数据库。 是否已经有任何 API 调用?

仅删除所有表并不会删除整个数据库。

提前致谢。

【问题讨论】:

  • 你可能应该回答并接受你自己的答案,因为你想通了。如果您只想接受,我已将您的答案复制到我的答案中。

标签: android ormlite


【解决方案1】:

编辑:

看来你想通了。你可以这样做:

boolean success =
    context.deleteDatabase(
        "/data/data/source.package.goes.here/databases/database-name.db‌​");

编辑:

使用 ORMLite 删除数据库很奇怪,但我认为可以做到。确实,当您执行dao.executeRaw(...) 方法时,您会打开到数据库引擎的连接,该连接几乎可以执行任何操作。您应该能够:

fooDao.executeRaw("drop database foo;");

这至少适用于我在 MySQL 下,它应该在 Sqlite 下。


是的,ORMLiteTableUtils class which allows you to create and drop tables。这是javadocs for the method

【讨论】:

  • 感谢您的回答。实际上我正在寻找如何删除数据库,因为删除所有表并不会删除整个数据库,这就是我真正想要做的。谢谢。
  • 我已经更新了我的答案@Lara。对困惑感到抱歉。让我知道它是否有效(或无效)。
  • 嘿,灰色。感谢您的回答。我试过 testDao.executeRaw("DROP DATABASE helloAndroid;", "");在所有组合中,但不知何故,它总是抛出语法错误。我也试图在手机本身上找到数据库,但不知何故,我可以读出的路径,在手机上并不存在。您还有其他想法如何删除数据库吗?谢谢。劳拉
  • 人力资源部。也许你不能通过 Sqlite 连接器来做到这一点。看到这个答案:stackoverflow.com/questions/4406067/…
  • 我终于得到了答案:boolean success = context.deleteDatabase("/data/data/package.for.testing/databases/helloAndroid.db");
【解决方案2】:

你可以这样做,

    TableUtils.dropTable(connectionSource, Model_Class.class, false);

对于数据库中的每个表,如果每个表都有模型类,则提供。

参考:

http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/table/TableUtils.html#dropTable%28com.j256.ormlite.support.ConnectionSource,%20java.lang.Class,%20boolean%29

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2014-02-02
    • 1970-01-01
    相关资源
    最近更新 更多