Android ORMLite 创建对象速度慢

2023-12-13

我正在使用 ormLite 在设备上存储数据。 我不明白为什么,但是当我存储大约 100 个对象时,其中一些对象存储时间太长,最多可达秒。 这是代码

来自数据库管理器:

public class DatabaseManager 
    public void addSomeObject(SomeObject object) {
        try {
            getHelper().getSomeObjectDao().create(object);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

public class DatabaseHelper extends OrmLiteSqliteOpenHelper

    public Dao<SomeObject, Integer> getSomeObjectDao() {
        if (null == someObjectDao) {
            try {
                someObjectDao = getDao(SomeObject.class);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return someObjectDao;
    }

有什么想法可以避免这种情况吗?


感谢格雷! 正如 Gray 提到的,解决方案是使用 callBatchTasks 方法:

public void updateListOfObjects (final List <Object> list) {
    try {
        getHelper().getObjectDao().callBatchTasks(new Callable<Object> (){
        @Override
        public Object call() throws Exception {
            for (Object obj : list){
                getHelper().getObjectDao().createOrUpdate(obj);
                }
            return null;
        }

    });
} catch (Exception e) {
    Log.d(TAG, "updateListOfObjects. Exception " + e.toString());
}
}

使用这种方式,我的对象(两种类型的对象,第一种类型 - 大约 100 个项目,第二种类型 - 大约 150 个项目)在 1.7 秒内存储。

See the ORMLite 文档.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ORMLite 创建对象速度慢 的相关文章

随机推荐

  • 如何编写 C# 5 异步?

    我有以下场景 当输入命令时 为了测试 它是一个控制台应用程序 当它准备好时 我希望它将是一个WebService 我执行一些代码 当需要进一步的用户输入时 我立即返回到命令解释器 当给出新的输入时 我希望处理从我离开的地方恢复 这听起来很像
  • 创建 iruby 笔记本时内核死掉

    我对 SciRuby 完全是菜鸟 我第一次使用 SciRuby 我正在关注这个video 概述如何使用 SciRuby 并绘制图形 图表等 当我转到 localhost 8888 并从右侧下拉菜单创建新笔记本时 Ruby 2 2 3 我在
  • 是否可以在一个 JVM 中运行多个映射任务?

    我想为 Hadoop 中的映射任务共享大量内存静态数据 RAM lucene 索引 有没有办法让多个map reduce任务共享同一个JVM 作业可以通过指定作业配置mapred job reuse jvm num tasks来重用任务JV
  • 使用 mysql php pdo 从数据库返回一个值

    我不想使用循环 我只从一行的一列中获取一个值 我通过以下代码得到了我想要的 但必须有一种更简单的方法使用 PDO try conn new PDO mysql host localhost dbname advlou test advlou
  • 用C程序杀死一个进程

    我正在编写一个程序 通过 vim 打开 txt 文件 每当我按 CTRL C 时 该进程就会被终止 但问题是我找不到我刚刚创建的进程的 pid 并杀死它 有谁能够帮助我 include
  • 如何使用 EF Core 将 JSON 存储在实体字段中?

    我正在使用 NET Core 针对 NETStandard 1 4 创建一个可重用库 并且正在使用 Entity Framework Core 对于两者来说都是新的 我有一个实体类 如下所示 public class Campaign Ke
  • 在 Windows 窗体上拖动时调整矩形大小

    我在 Windows 窗体顶部绘制了一个矩形 我想使用提供的手柄之一调整它的大小 Rectangle areaRect new Rectangle 100 100 300 300 Bool dragging false Point ptOl
  • Pandas:在数据框中创建两个新列,其值是根据预先存在的列计算得出的

    我正在与pandas库 我想向数据框中添加两个新列df有 n 列 n gt 0 这些新列是通过将函数应用到数据帧中的其中一列而产生的 要应用的函数如下 def calculate x operate return z y 为仅返回值的函数创
  • 如何通过迭代方法创建一系列带有统计注释的箱线图

    我已经安装了以下模型 models list 1 lt data long gt group by signals gt do fit lmerTest lmer value COND SES 1 ID data gt pull fit g
  • C# WinForms:如何设置 Main 函数 STAThreadAttribute

    调用时出现以下异常saveFileDialog ShowDialog 在后台线程中 当前线程必须设置为单线程 OLE 之前的线程单元 STA 模式 可以拨打电话 确保您的 Main函数有STAThread属性 标记在其上 根据this 要解
  • Python:使用“..%(var)s..”% locals() 是一个好习惯吗?

    我发现了这种模式 或反模式 我对此非常满意 我感觉它非常敏捷 def example age name print hello name s you are age s years old locals 有时我使用它的表弟 def exam
  • 具有 3 个分支建议的 git 工作流程

    我正在开发一个项目 我们试图以最有效的方式 对我们来说 掌握使用 git 的方法 并决定在主分支旁边创建 2 个分支 供 2 个子团队使用 有时 如果它是应该进入两个分支的通用内容 我们会提交到 master 然后我们希望在其他两个分支中进
  • 如何将UIView转换为高分辨率的UIImage?

    关于如何将 UIView 转换为 UIImage 已经有一些讨论 或者使用view drawHierarchy in or view layer renderInContext 然而 即使将比例设置为设备比例 结果仍然是相当糟糕的分辨率 我
  • c++“GetThreadTimes”但具有更好的分辨率

    有没有一种方法的分辨率比 100us 更好 可以让我获得线程工作的总时间 不包括它休眠或等待的时间 谢谢 您可以使用 QueryThreadCycleTime 它会计算 CPU 周期 你没有比这更好的了 适用于 Vista 及更高版本 它不
  • C#:DataGridView 控件中的多行文本

    DataGridView 控件是否可以在单元格中显示多行文本 我正在使用 Visual Studio 2005 和 C 你应该设置DefaultCellStyle WrapMode列的属性为DataGridViewTriState True
  • 如何解决 WNetAddConnection2 调用中的 ERROR_BAD_NET_NAME 错误?

    我仍在尝试解决我遇到的问题它的第一部分是我显然需要调用 WNetAddConnection2 才能使用 CreateFile 通过网络共享打开文件 完成此操作后 我现在收到来自 WNet 2 调用的 ERROR BAD NET NAME 返
  • 如何“git克隆”一个存储库,包括它的子模块?

    如何克隆 git 存储库以便它也克隆其子模块 Running git clone REPO URL仅创建空的子模块目录 在 Git 2 13 及更高版本中 recurse submodules可以用来代替 recursive git clo
  • 使用库请求发送 POST 请求时出现问题

    import requests while True try posting requests post url json data headers timeout 3 05 except requests exceptions Conne
  • 打印所有用户 - Joomla 2.5

    我是 Joomla 的新手 我使用 Joomla 2 5 创建了网站 我有登录页面 这是默认的 Joomla 用户管理系统 我想要的是以表格格式显示所有用户数据 我怎么能做同样的事呢 Edit 1 我可以通过以下步骤查看用户 转到管理员页面
  • Android ORMLite 创建对象速度慢

    我正在使用 ormLite 在设备上存储数据 我不明白为什么 但是当我存储大约 100 个对象时 其中一些对象存储时间太长 最多可达秒 这是代码 来自数据库管理器 public class DatabaseManager public vo