前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ionic3学习笔记(六)存储之使用 SQLite

Ionic3学习笔记(六)存储之使用 SQLite

作者头像
Theo Tsao
发布2018-09-07 16:13:19
1.4K1
发布2018-09-07 16:13:19
举报
文章被收录于专栏:Theo TsaoTheo Tsao

1. 安装

命令行输入

代码语言:javascript
复制
ionic cordova plugin add cordova-sqlite-storage
npm install --save @ionic-native/sqlite

./src/app/app.module.ts 中添加

代码语言:javascript
复制
import {SQLite} from "@ionic-native/sqlite";

provides 中添加

代码语言:javascript
复制
SQLite,

2. CURD操作

user.ts

代码语言:javascript
复制
export class User {

  username: string;
  password: string;
  gender: boolean;
  age: number;
  intro: string;
  email: string;
  phone: string;
  location: string;

  constructor() {

  }

}

data.ts

代码语言:javascript
复制
import {SQLite, SQLiteObject} from "@ionic-native/sqlite";

export class DataProvider {

  myAppDatabase: SQLiteObject;

  constructor(private sqlite: SQLite) {

  }

  initDatabase() {
    this.sqlite.create({
      name: 'myApp.db',
      location: 'default'
    }).then((database: SQLiteObject) => {
      database.executeSql('CREATE TABLE IF NOT EXISTS users(email VARCHAR(320) PRIMARY KEY, username VARCHAR(20) NOT NULL, password VARCHAR(30) NOT NULL, gender BOOLEAN, age TINYINT, intro VARCHAR(300), phone CHAR(11), location VARCHAR(100));', {}).then(() => console.log('init database successfully')).catch(e => console.log(e));
      this.myAppDatabase = database;
    })
  }

}

user-data.ts

代码语言:javascript
复制
import {Injectable} from '@angular/core';

import {SQLiteObject} from "@ionic-native/sqlite";

import {DataProvider} from "../data/data";

import {User} from "./user";

@Injectable()
export class UserDataProvider {

  database: SQLiteObject;

  constructor(private dataProvider: DataProvider) {
    this.database = this.dataProvider.myAppDatabase;
  }

  insertIntoUserTable(user: User) {
    this.database.executeSql('INSERT INTO users VALUES (?, ?, ?, NULL, NULL, NULL, NULL, NULL);', [user.email, user.username, user.password]).then(() => console.log('insert into users table successfully')).catch(e => console.log(e));
  }

  queryUserTable() {
    this.database.executeSql('SELECT * FROM users;', {}).then(() => console.log('query users table successfully')).catch(e => console.log(e));
  }

  updateUserTable(user: User) {
    this.database.executeSql('UPDATE users SET username=?, password=?, gender=?, age=?, intro=?, phone=?, location=? WHERE email=?;', [user.username, user.password, user.gender, user.age, user.intro, user.phone, user.location, user.email]).then(() => console.log('update users table successfully')).catch(e => console.log(e));
  }

}

更多可详见

  1. Ionic Native - SQLite
  2. GitHub - Cordova-sqlite-storage
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-102,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装
  • 2. CURD操作
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档