【问题标题】:What Android sqlite does?Android sqlite 是做什么的?
【发布时间】:2011-11-25 15:09:46
【问题描述】:

我正在我的 android 应用程序中开发一个 sqlite 数据库。我需要它可以轻松增长,所以我需要在将来的升级中,我可以更改数据库等。

我想知道当我在sqlite创建方法中更改数据库版本时,它是否会创建一个数据库的新文件。如果是,那么在 onUpgrade 中我应该迁移所有数据,不是吗?

总之,onCreate 到底做了什么?它会创建数据库的新文件吗?还是修改了实际的?

我问这个是因为我不希望 onCreate 创建一个新文件...我只想更改实际的数据库。

谢谢

【问题讨论】:

    标签: android sqlite oncreate


    【解决方案1】:

    OnCreate 仅在需要第一次创建数据库时调用。

    如果数据库已经存在并且版本号不匹配,则调用 OnUpgrade。您应该使用 OnUpgrade 将数据库从旧版本更改为新版本。

    【讨论】:

    • 那么,为什么我只看到在onUpgrade中将旧数据库的所有数据转移到临时表然后删除旧表的教程?没看懂……onUpgrade 不是新建数据库吗?
    • 如果您不相信我,请阅读文档。
    【解决方案2】:

    我假设您指的是 SQLiteOpenHelper 中的 OnCreate 方法。当您请求可写或可读数据库并且需要创建数据库时,它会被调用。我们不直接调用 oncreate 方法。所以如果一个数据库已经存在并且我们请求一个可写或可读的数据库——不会创建新的数据库。

    有关更多信息,请参阅这些链接

    http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

    http://developer.android.com/resources/tutorials/notepad/index.html

    【讨论】:

    • 是的,我知道。但我问的是 onCreate 方法是否在每次调用该方法时都会创建一个新的 DataBase 文件......因为我不想在文件之间传输数据。我想修改一个唯一的数据库文件。
    猜你喜欢
    • 2010-10-17
    • 2011-12-20
    • 2012-12-05
    • 1970-01-01
    • 2014-11-30
    • 2017-03-16
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多