美文网首页ionic3+Ionic 3Ioinc3 学习
Ionic3学习笔记(六)存储之使用 SQLite

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

作者: Metaphors | 来源:发表于2017-10-14 10:55 被阅读54次

    本文为原创文章,转载请标明出处

    目录

    1. 安装
    2. CURD操作

    1. 安装

    命令行输入

    ionic cordova plugin add cordova-sqlite-storage
    npm install --save @ionic-native/sqlite
    

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

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

    provides 中添加

    SQLite,
    

    2. CURD操作

    user.ts

    export class User {
    
      username: string;
      password: string;
      gender: boolean;
      age: number;
      intro: string;
      email: string;
      phone: string;
      location: string;
    
      constructor() {
    
      }
    
    }
    

    data.ts

    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

    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

    如有不当之处,请予指正,谢谢~

    相关文章

      网友评论

        本文标题:Ionic3学习笔记(六)存储之使用 SQLite

        本文链接:https://www.haomeiwen.com/subject/fhsxuxtx.html