将来自http API的多个数据返回插入sql lite

Posted

技术标签:

【中文标题】将来自http API的多个数据返回插入sql lite【英文标题】:Insert multiple data return from http API into sql lite 【发布时间】:2018-03-13 21:07:42 【问题描述】:

我正在开发一个 ionic2 项目,用户必须先登录才能访问系统。 当他们登录并成功时,我将他们的用户名发布到不同的 API 以获取他们创建的所有条目的列表,之后我想将所有返回的条目插入 sql lite db,但我发现很难做到

userlogin()

    let loader = this.LoadingController.create(
      content: 'Please Wait'
      );
      loader.present().then(()=>

    this.http.post("http://localhost/app/login.php",  'username': this.username, 'password': this.password ).map(res => res.json()) .subscribe(data => 

      if(data.message!="Incorrect Username or Password")

     this.http.post("http://localhost/app/entries.php",  'username': this.username).map(res => res.json()) .subscribe(data => 
      console.log(JSON.stringify(data));

      this.sqlite.create(
        name: 'entries.db',
        location: 'default'
        )
        .then((db: SQLiteObject) => 
        //data insert section
        db.executeSql('INSERT INTO entries_table(entry) VALUES(?)', 
        [this.data.entry]).then((data)=> 

        , (error) => 

        );


        )
     );



    else

    if(data.message=="Incorrect Username or Password")
      let alert = this.alertCtrl.create(
        title: 'Error!',
        subTitle: 'Wrong Username or Password',
        buttons: ['Try Again']
      );
      alert.present();
    
    
    loader.dismiss();
    );

  ,error=>
    let alert = this.alertCtrl.create(
      title: 'Error!',
      subTitle: 'Please check your Internet Connectivity',
      buttons: ['Try Again']
    );
    alert.present();
  ) 
  

登录工作正常,但问题是将 API 一次返回的多个数据插入 sql lite db

【问题讨论】:

【参考方案1】:

使用离子存储并将驱动程序配置为使用 sqlite。那么就很简单了

import  Storage  from '@ionic/storage';

export class MyApp 
  constructor(private storage: Storage)  

  ...

  // set a key/value
  storage.set('entries', returnedEntryObject);

  // Or to get a key/value pair
  storage.get('entires')
    .then((returnedEntryObject) => 
        console.log('The user entries are', returnedEtnryObject);
  );

您可以在link 上深入查看详细信息。

【讨论】:

以上是关于将来自http API的多个数据返回插入sql lite的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL Server 向 REST API 发送请求并检查返回的 http 代码

将 XML 多个嵌套节点插入 SQL 表

使用来自 MS SQL 的 API 检索表的简单方法

格式化来自数组中 Web API 调用的响应返回

将 SQL 值从链接数据重新编码/转换为新列:为啥 CASE WHEN 返回多个值?

HTTP POST 请求返回尝试从 objects[0] 插入 nil 对象?