开始使用这个存储方式的原因是  之前用的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的添加使用的更多相关文章

  1. SQLite密码添加移除

    背景:电脑清理--个人洁癖 SQLite的最原始的是没有加密的,从而衍生了多种加密算法,但在平常使用中使用System.Data.Sqlite,但其加密后,一般都需要要单独的sqlite管理器--像我 ...

  2. Sqlite数据库添加数据以及查询数据方法

    只是两个添加查询方法而已,怕时间长不用忘了

  3. asterisk实时添加sip号码--sqlite篇

    原文:asterisk实时添加sip号码--sqlite篇 asterisk实时添加sip号码--sqlite篇 今天尝试用了asterisk的实时模式,往sqlite里面添加一个sip帐号,无需重启 ...

  4. Xamarin SQLite教程Xamarin.iOS项目添加引用

    Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将System.Data和Mono.Data.SQlite库导入到创建的项目中.下面将分别讲 ...

  5. SQLite XXTea加密学习

    这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了. ...

  6. UWP开发随笔——使用SQLite数据库

    摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用.但是在有些场景下,app的 ...

  7. SQLite简单使用说明

    System.Data.SQLite.dll下载地址 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选择. ...

  8. sqlite 报错:database is locked

    在sqlite批量添加数据时,报错:database is locked. 解决办法:将db路径由相对路径设置为绝对路径.

  9. (转)Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

    原文:http://blog.csdn.net/lidew521/article/details/8655229 1.SQLite介绍:最大特点是,无数据类型;除了可以使用文件或SharedPrefe ...

随机推荐

  1. Download all Apple open source OS X files at once

    While it is well known that Mac OS X contains open source code, how to access and download that sour ...

  2. linux常用的压缩与解压缩命令

    1.gzip 压缩 gzip 是压缩文件,压缩之后文件后缀为.gz 用法:gzip 选项 [文件] 2.gunzip 解压 这个命令与gzip的功能刚好相反,这个是解压. 用法 gunzip 选项 [ ...

  3. 软考下午题详解---uml图

    在上篇博客中,小编主要简单的对软考下午题当中的数据流图设计进行了一系列总结,今天我们继续来看软考下午题当中大题部分,uml图的相关知识,在我们学习的过程中,我们也已经接触过,西安交大刘惠老师讲解过um ...

  4. Android Studio科普篇——1.几个个性化设置

    本人未研读过android-studio使用文档,亦未去好好琢磨它的各种使用技巧等.以下内容均来自个人使用经验,如有讹误,还请指正. 1.主题. File->Settings, 搜索Theme, ...

  5. 怎么在Eclipse中添加VI插件

    下载地址 Vi插件下载位置 怎么安装? 将下载下来的zip文件进行解压,然后把对于的目录下的文件分别复制到eclipse目录下的plugins 和features目录下: 注册 在eclipse根目录 ...

  6. Uva - 1594 - Ducci Sequence

    水题,算出每次的结果,比较是否全0,循环1000次还不是全0则LOOP AC代码: #include <iostream> #include <cstdio> #include ...

  7. Uva - 400 - Unix ls

    先计算出最长文件的长度M,然后计算列数和行数,最后输出即可. AC代码: #include <iostream> #include <cstdio> #include < ...

  8. Linux Debugging(六): 动态库注入、ltrace、strace、Valgrind

    实际上,Linux的调试方法非常多,针对不同的问题,不同的场景,不同的应用,都有不同的方法.很难去概括.本篇文章主要涉及本专栏还没有涵盖,但是的确有很重要的方法.本文主要包括动态库注入调试:使用ltr ...

  9. (Tomcat)服务器之web应用的虚拟目录映射和主机搭建

    首先来了解一下web的虚拟目录映射和主机搭建的知识 第一:web的虚拟目录映射 首先我们要知道什么叫做web的虚拟目录映射,这个很好理解的,就是将我们本地硬盘上的web应用映射出一个供外界用户访问的地 ...

  10. C++ Primer 有感(标准库vector及迭代器)

    vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...