【问题标题】:Ormlite or sqlite Which one is good for Android perspective? [closed]ormlite or sqlite 哪一个更适合Android视角? [关闭]
【发布时间】:2013-08-12 07:14:55
【问题描述】:

我很困惑Ormlitesqlite 哪个适合Android 视角。 请你给我建议哪一个更适合使用我们的安卓应用程序。并使其易于使用并支持所有 android 设备? 我想在我们的项目中使用 ormlite,但在我想确定它对我和我的应用程序有帮助之前。因此,如果有人在此之前使用过,请指导我。我非常感谢您的想法。谢谢

【问题讨论】:

  • OrmLite 是一个 ORM,它提供了一些简单的方法来处理 SQLite 上的数据库功能。 ORMLite 不是数据库。如果你想使用它,那么别致是你的,你有一些简单的方法来处理表之间的关系,但请记住,这是一个适用于 SQLite 的 ORM。
  • @pankaj 谢谢,你能详细说明一下使用它的简单方法以及如何开始
  • 当然!这里有一些例子ormlite.com/android/examples
  • 这里是官方的 ORMLite Android 文档:ormlite.com/docs/android

标签: android android-sqlite ormlite


【解决方案1】:

ORMLite 是一个开源软件框架,它提供 Java 类和 SQL 数据库之间的轻量级对象关系映射 (ORM)。

如果你使用这个框架,你最终会使用 sqlite 数据库(ORMLite 不是数据库),它可以让你为你的应用程序实现一个好的架构,我总是更喜欢使用 ORMLite

如果你想开始使用,这里是我的blog on ORMLite!!

【讨论】:

【解决方案2】:

ORMLite 有两个 .jar 文件:ormlite-core.jar (275KB) 和 ormlite-android (50KB) 库

优势:-

  1. 用于复杂的数据库操作

  2. 无需记住 SQL 查询

  3. 适合大尺寸应用

缺点:-

  1. 不必要地增加应用程序的大小

  2. 与 greenDao(另一个 ORM)相比有点慢

【讨论】:

  • 是的,使用它会影响大小和效率
【解决方案3】:

虽然其他答案很完美,但我想提一下使用 ORM 的另一个方面,例如 Ormlite vs SQlite。

ORM(例如 Ormlite)很好用,因为它们减少了工作量和代码量,但我已阅读 this 并在此提及以下观点:

我们通常不建议使用对象关系映射库 除非你有异常复杂的数据并且你有迫切的需要。他们 往往很复杂,需要时间来学习。如果你决定去 一个 ORM 你应该注意它是否是过程安全的 如果您的应用程序需要它,与现有的许多 ORM 解决方案一样 令人惊讶的是没有。

【讨论】:

    【解决方案4】:

    你也可以选择看Storm (https://github.com/supaldubey/storm/)

    它提供了简洁的接口,并且不要求覆盖或实现模型的任何基类。

    它还会自动创建和自动升级您的模型

    您可以添加到 Gradle 并轻松开始使用

    在父母中:

    maven { url "http://dl.bintray.com/cubestack/maven" }

    在项目 Gradle 中:

     dependencies {
            compile 'in.cubestack.android.lib:storm:1.0g'
        }
    

    第 1 步:定义表:

        @Table(name = "DEMO_ENTITY")
        class Entity {
       @PrimaryKey
       @Column(name="ID", type = FieldType.INTEGER)
       private int id;
        }
    

    第二步(定义数据库)

    数据库也有可以应用的注解,可以定义多个数据库。

    @Database(name="MY_DB", tables = {Entity.class, AnotherEntity.class}, version = 2)
    class Database {}
    

    第三步(开始使用)

    为我们准备好数据库,我们可以开始使用它:

    检索

    StormService service = new BaseService(getContext(), Database.class);
    List<Entity> savedEntities  = service.findAll(Entity.class);
    

    同样有保存、删除等方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2011-11-25
      相关资源
      最近更新 更多