• ionic1 sqlite的添加使用


    开始使用这个存储方式的原因是  之前用的Local Storage 存储在ios设备上  当内存达到一定程度时 ios会自动清除app的一部分存储 所以之前存的东西可能会被清除  达不到想要的功能效果 决定用sqlite

    先来一个中文版官方文档: http://www.runoob.com/sqlite/sqlite-tutorial.html   (太多太乱 不想看下去)

    参考别人博客链接:https://yq.aliyun.com/articles/69473  (使用方法很清楚 数据的添加、删除、查找 但其中一些讲解不清楚 有的也有问题 不同的观点我下面会说清楚 具体第三点)

    1.添加插件

       cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin.git

    2.添加依赖 引入插件

       在js中添加ngCordova依赖     angular.module('myApp', ['ngCordova']) 

       在index.html里面引入js文件    <script src="lib/ngCordova/dist/ng-cordova.js"></script>

    3.平台就绪后创建数据库

       不要忘记注入   $cordovaSQLite

       name是数据库的名称  注意一定要加上  location:1  这个很关键 没有这个数据库创建不成功 之前没加找了很多地方才发现这个问题

       还有一点  ionic server  很多人都说浏览器不支持  其实是可以的  按照下面的方法判断之后再创建数据库  都是可用的 

    $ionicPlatform.ready(function() {
        //创建数据库
        if (window.cordova) {
          $rootScope.db = $cordovaSQLite.openDB({
            name: "my.db",
            location: 1
          }); //device
        } else {
          $rootScope.db = window.openDatabase("my.db", '1', 'my', 1024 * 1024 * 100); // browser
        }
        //创建表
        $cordovaSQLite.execute($rootScope.db, "CREATE TABLE IF NOT EXISTS appStepTime (edition text)");       
     });

        我这里把数据库作为一个全局变量了 因为我其他地方要用到做判断  要是只在这个js文件做处理的话可以定义成一个局部变量

        创建表的时候  我这里 appStepTime 是我的表的名字  里面只储存了一个字段 edition 类型是 text   如果需要创建多个字段  如下代码 : "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)"

    4.数据库查询数据 插入数据 

       我这里做的判断是如果数据库没有这个字段就插入这个字段  并没有对字段的值进行判断  如果有需要可以参考上面那个链接

    //数据库查询数据
    $cordovaSQLite.execute($rootScope.db, "SELECT edition FROM appStepTime").then(function(res) {
       if (res.rows.length > 0) {
         //有数据的话作出相应的处理
       } else {
         //alert("No results found");没有数据作处理
         //数据库插入数据
         $cordovaSQLite.execute($rootScope.db, "INSERT INTO appStepTime(edition) VALUES (?)", [$rootScope.editionNum]).then(function(res) {
           //alert("INSERT ID -> " + res.insertId);
         }, function(err) {
           //alert(err);
         });
       }
    
     }, function(err) {
       //alert(err);
     });

       如果学过数据库的朋友应该很清楚 查询是 select  插入是 insert  删除是 delete  (我大学学过 但是仅限于皮毛)

    5.删除数据库

       本人未做过数据删除 所以具体删除数据的方法可以参考官方文档:  http://www.runoob.com/sqlite/sqlite-delete.html

       删除数据库方法:$cordovaSQLite.deleteDB("my.db");

  • 相关阅读:
    Java集合(一)、什么是Java集合?
    (三十)、Dalvik虚拟机与java虚拟机的区别
    (二十九)、Java字符串中去除空格
    php面试题
    php实现页面静态化
    laravel框架使用云片网短信发送
    win10 安装redis 和laravel 使用redis
    验证码不区分大小写
    git 库克隆下来的laravel 代码报错
    laravel 验证码组件
  • 原文地址:https://www.cnblogs.com/luffyc/p/8986631.html
Copyright © 2020-2023  润新知