将来自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 代码