码迷,mamicode.com
首页 > 数据库 > 详细

ionic1 sqlite的添加使用

时间:2018-05-03 19:28:28      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:data-   tab   ora   ova   exist   string   bsp   www   ready   

开始使用这个存储方式的原因是  之前用的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");

ionic1 sqlite的添加使用

标签:data-   tab   ora   ova   exist   string   bsp   www   ready   

原文地址:https://www.cnblogs.com/luffyc/p/8986631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!