请求多个 API 并在 SQLITE 上存储多个表的最佳方式

2023-12-08

问题是:如何在sqlite上存储?我的意思是如何在 2 个表上存储 2 个 API 数据?

我有多个 API 来获取和存储缓存中的数据。目前,我一项一项地做,如下所示:

按下按钮():

 await HelperDatabase1().storeRegister(_url, tokens);
 await HelperDatabase1().storeEquipmentReg(_url, tokens);
...

它减慢了我的应用程序...所以我决定采用 @günter-zöchbauer 的方式。 (https://stackoverflow.com/a/50028061/9139407)但我不明白如何在 SQLite 上存储多个表。

storeAll() used Future.wait

void storeAll(String url, String token) async {
  final urlList = ['$url/nativeapi/v1.0/Register','$url/nativeapi/v1.0/EquipmentReg'];

  final responses = await Future.wait(
    urlList.map((String url) {
      return http.get(url,headers: {'Authorization': 'Bearer $token'});
    }),
  );

  final List<dynamic> caches = responses.map((response) {
    print('store All: ${response.body}');
    return json.decode(response.body);
  }).toList();
}

打印效果良好

目前使用的有以下两种方法 storeRegister() method(获取数据并存储本地)

storeRegister(String url, String token) async {
    var db = await db1;
    Batch batch = db.batch();
    final response = await http.get(
      '$url/nativeapi/v1.0/Register',
      headers: {'Authorization': 'Bearer $token'},
    );
    final jsonResponse = json.decode(response.body);
    AssetRegister model = AssetRegister.fromJson(jsonResponse);
    int length = model.data.length;
    for (int i = 0; i < length; i++) {
      var data = DataRegister(
          i: model.data[i].i,
          d: model.data[i].d,
          c: model.data[i].c,
          u: model.data[i].u,
          p: model.data[i].p,
          a: model.data[i].a);
      batch.insert(
        'registerTable',
        data.toMap()
      );
    }
    await batch.commit();
  }

storeWquipmentReg() method

  storeEquipmentReg(String url, String token) async {
    var db = await db1;
    Batch batch = db.batch();
    final response = await http.get(
      '${url}/nativeapi/v1.0/EquipmentReg',
      headers: {'Authorization': 'Bearer ${token}'},
    );
    final jsonResponse = json.decode(response.body);
    Assets model = Assets.fromJson(jsonResponse);
    int length = model.data.length;
    for (int i = 0; i < length; i++) {
      var data = DataEquipmentReg(
        i: model.data[i].i,
        r: model.data[i].r,
        l: model.data[i].l,
        t: model.data[i].t,
        p: model.data[i].p,
        c: model.data[i].c,
        u: model.data[i].u,
        a: model.data[i].a,
        b: model.data[i].b,
        eq_no: model.data[i].eq_no,
        isH_wit_C: model.data[i].isH_wit_C,
        n: model.data[i].n,
      );
      batch.insert(
        'EquipmentRegTable',
        data.toMap()
      );
    }
    await batch.commit();
  }

None

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

请求多个 API 并在 SQLITE 上存储多个表的最佳方式 的相关文章

随机推荐

  • 有没有办法在 Git 中签出新分支后触发挂钩?

    有没有办法在 Git 中签出新分支后触发挂钩 git hook 是放置在存储库的特殊位置的脚本 该位置是 git 钩子 该脚本可以是您可以在您的环境中执行的任何类型 即 bash python ruby 等 签出后执行的钩子是结账后 来自文
  • nginx/413 请求实体太大

    当我尝试在服务器上上传文件时 出现以下错误 413请求实体太大 这当然意味着我的文件太大了 所以我做了一个快速的谷歌搜索并发现了这个 open etc nginx nginx conf Edit set client body size t
  • Fortran 标准中 OPEN 语句中的 SHARED 选项

    在本文档中HP Fortran 文档 OPEN 语句接受 SHARED 和 READONLY 选项 在本文档中标准 Fortran 2008 文档 OPEN 语句不接受 SHARED 或 READONLY 选项 因为我正在使用gfortra
  • python Flask 线程 true 不起作用

    With threaded True每个请求都在一个新线程中处理 但是 如果我将应用程序的 threaded 设置为 true 它将显示未知的行为 这是我的代码 from flask import Flask from flask impo
  • Webpack 在供应商块中使用 node_modules 而不明确声明它们

    So 代码分割是创建不同捆绑包的技术 所以应用程序 供应商等 我知道我想要什么vendor捆绑 但只是按照惯例 Anything import x from name import name 这些需要在vendor 因为 我认为它们 显然来
  • DateTimeFormatter 解析 - 时区名称和夏令时重叠时间

    为了提高某些遗留代码的性能 我正在考虑用 java time format DateTimeFormatter 替换 java text SimpleDateFormat 执行的任务之一是解析使用 java util Date toStri
  • 在 Java 控制台应用程序中使用 Windows“cls”命令清除屏幕

    我正在开发一款游戏 该游戏需要在每回合后清除屏幕以提高可读性 唯一的问题是我无法使用基于 Windows 命令提示符的 cls 命令 并且它不支持 ANSI 转义字符 我在下一页上使用了 Dyndrilliac 的解决方案 但它导致了 IO
  • 如何从我的应用程序打开谷歌日历应用程序?

    我想从我的应用程序打开 Google 日历应用程序 我有以下代码 但它崩溃了 if Utils isPackageInstalled PACKAGENAME getApplicationContext intent new Intent I
  • 是否可以本地化 web.config 文件中的 appSettings 信息?

    我有这样的想法
  • 在 MySQL 查询中创建和桥接表

    我正在为 MySQL 数据库进行基本表设计 该数据库项目是作为一个想法提出的 主要用于教育目的 总共有 11 个表 其中 2 个用于桥接目的 我尝试正确设置主键和外键 我不知道如何编写将创建 11 个表并同时桥接所有表的查询 HERE我附上
  • 节目统计工具

    有没有一个工具能够解析我的源代码 fortran C 或 C 并返回统计信息 例如循环数 平均循环大小 函数数 函数调用数 数量 大小和数组 变量等的类型 类似的东西this在我的架构上运行起来并不容易 神奇的谷歌术语是 代码指标 维基百科
  • 从 C# 中的字符串中删除后跟空格或空格之前的单词或字符

    我有一根绳子 string name AL QADEER UR AL REHMAN AL KHALIL UN 我如何删除所有字符AL UR UN或者可能还有更多类似的事情 我的字符串应该是这样的 卡迪尔 雷赫曼 哈利勒 目前我正在尝试这样做
  • Java 中的接口如何工作?

    我正在自学 Java 并且我被困在有关接口的一章中 我根本无法理解它们在 Java 中是如何工作的 我相信我完全理解界面的含义以及它们如何应用于日常情况和技术 但当涉及到 Java 时 无论是代码方面还是逻辑方面 我都陷入了困境 我不明白
  • Swing - 根据单元格的值设置单元格的颜色

    我想根据单元格的值设置单元格的颜色 在谷歌搜索了一下后 我发现我可以使用这样的东西来做到这一点 public class TableCellRenderer extends DefaultTableCellRenderer Override
  • 是否有用于构建在浏览器中运行的桌面应用程序的开源框架? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有兴趣启动一个开源项目 该项目可以打包为非技术最终用户的桌面应用程序 但可以在浏览器中运行 一个现有模型是谷歌精炼 我正在寻找一个现有的开源框架这
  • 可以用innerHTML插入脚本吗?

    我尝试使用以下命令将一些脚本加载到页面中innerHTML on a div 该脚本似乎已加载到 DOM 中 但从未执行过 至少在 Firefox 和 Chrome 中 有没有办法让脚本在插入时执行innerHTML 示例代码 Should
  • 空手道 - 如何导入 json 数据

    我想将一些 JSON 数据导入到我的测试中 为了记录我应该这样做 def data read classpath init data json 我已经使用以下内容创建了 JSON 文件 name ehsan 这是我的代码 Backgroun
  • 在 DirectShow 中预览相机并捕获静态图像 - 在 VB.net 中

    我正在尝试在 Visual Studio 2008 中编写一个程序 该程序将访问网络摄像头 在屏幕上显示预览 然后在按下按钮时保存静态快照 jpg 稍后我将把它与数据库集成 但我不应该对那部分有问题 经过一些研究后 看起来 DirectSh
  • 正则表达式从代码中删除方法

    使用正则表达式 我尝试从以下代码中删除所有方法 函数 不考虑 全球范围 但是 我无法使其与方法的所有内部内容匹配
  • 请求多个 API 并在 SQLITE 上存储多个表的最佳方式

    问题是 如何在sqlite上存储 我的意思是如何在 2 个表上存储 2 个 API 数据 我有多个 API 来获取和存储缓存中的数据 目前 我一项一项地做 如下所示 按下按钮 await HelperDatabase1 storeRegis