ionic1 sqlite的添加使用

luffyc 2018-05-03 原文

开始使用这个存储方式的原因是  之前用的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  很多人都说浏览器不支持  其实是可以的  按照下面的方法判断之后再创建数据库  都是可用的 

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

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

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

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

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

  1. //数据库查询数据
  2. $cordovaSQLite.execute($rootScope.db, "SELECT edition FROM appStepTime").then(function(res) {
  3. if (res.rows.length > 0) {
  4. $state.go('app.search.index');
  5. } else {
  6. //alert("No results found");
  7. //数据库插入数据
  8. $cordovaSQLite.execute($rootScope.db, "INSERT INTO appStepTime(edition) VALUES (?)", [$rootScope.editionNum]).then(function(res) {
  9. //alert("INSERT ID -> " + res.insertId);
  10. }, function(err) {
  11. //alert(err);
  12. });
  13. }
  14. }, function(err) {
  15. //alert(err);
  16. });

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

5.删除数据库

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

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

发表于 2018-05-03 17:40 luffyc 阅读() 评论() 编辑 收藏

 

版权声明:本文为luffyc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/luffyc/p/8986631.html

ionic1 sqlite的添加使用的更多相关文章

  1. cordova

    sass https://www.cnblogs.com/sdcs/p/9104474.html px2rem […]...

  2. Cordova 入门 – 祥昊

    Cordova 入门 1.安装jdk8 并配置环境变量  JAVA_HOME C:\Program Files […]...

  3. Cordova+ionic+angular 项目从 UIWebView 更换为 WKWebView ,通过IOS审核

    当前 cordova-ios 最新版本 5.1.1 新版本 cordova-ios 将删除 UIWebView […]...

  4. ionic加载cordova科大讯飞语音输入法插件相关问题

    1:申请相关appid,见官网,添加语音听写服务,下载sdk 2:下载cordova插件,见https://g […]...

  5. cordova plugin 大全及安装命令

       前言:用cordova开发hybrid app的过程中,由于是html5开发的app,在手机上很多权限受 […]...

  6. Web App适配iPhoneX

    前言 Iphone每次退出新尺寸的手机都会掀起一番适配风波,这次没有下巴但有刘海的iPhoneX更是如此,网传 […]...

  7. Cordova 浅析架构的原理

    因为项目使用了Cordova,也使用了很长时间。至于有很多hybride框架,为什么我们使用Cordova,这 […]...

  8. cordova 入门

    1. npm install -g cordova On Windows, npm can usually b […]...

随机推荐

  1. Redis开发与运维:数据迁移(下)

    上一篇,有朋友留言redis-port,借此机会我尝试使用一下redis-port这个同步工具 redis-p […]...

  2. HBase环境搭建随记

      ====软件版本==== jdk:jdk-8u77-linux-x64.tar.gz zookeeper: […]...

  3. python中的可哈希与不可哈希

    什么是可哈希(hashable)? 简要的说可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple […]...

  4. 【Java】对foreach循环的思考

    阿里java开发手册已经发表,很多都值得认真研究思考,看到零度的思考题,没忍住研究了一下。 零度的思考:htt […]...

  5. Jmeter——使用JSR223元件实现RSA登录加密

    一、RSA加密简介   RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安 […]...

  6. 设计模式-观察者模式上

    观察者模式可以说是非常贴近我们生活的一个设计模式,为什么这么说呢?哲学上有这么一种说法,叫做“万事万物皆有联系 […]...

  7. oracle导入dmp文件的2种方法

    使用imp、impdp方式导入数据 1.使用imp导入数据 打开cmd窗口,然后直接敲入一下命令即可,需要注意 […]...

  8. 弄懂goroutine调度原理

    goroutine简介 golang语言作者Rob Pike说,“Goroutine是一个与其他gorouti […]...