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");
ionic1 sqlite的添加使用的更多相关文章
- SQLite密码添加移除
背景:电脑清理--个人洁癖 SQLite的最原始的是没有加密的,从而衍生了多种加密算法,但在平常使用中使用System.Data.Sqlite,但其加密后,一般都需要要单独的sqlite管理器--像我 ...
- Sqlite数据库添加数据以及查询数据方法
只是两个添加查询方法而已,怕时间长不用忘了
- asterisk实时添加sip号码--sqlite篇
原文:asterisk实时添加sip号码--sqlite篇 asterisk实时添加sip号码--sqlite篇 今天尝试用了asterisk的实时模式,往sqlite里面添加一个sip帐号,无需重启 ...
- Xamarin SQLite教程Xamarin.iOS项目添加引用
Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将System.Data和Mono.Data.SQlite库导入到创建的项目中.下面将分别讲 ...
- SQLite XXTea加密学习
这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了. ...
- UWP开发随笔——使用SQLite数据库
摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用.但是在有些场景下,app的 ...
- SQLite简单使用说明
System.Data.SQLite.dll下载地址 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选择. ...
- sqlite 报错:database is locked
在sqlite批量添加数据时,报错:database is locked. 解决办法:将db路径由相对路径设置为绝对路径.
- (转)Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解
原文:http://blog.csdn.net/lidew521/article/details/8655229 1.SQLite介绍:最大特点是,无数据类型;除了可以使用文件或SharedPrefe ...
随机推荐
- Spark技术内幕之任务调度:从SparkContext开始
SparkContext是开发Spark应用的入口,它负责和整个集群的交互,包括创建RDD,accumulators and broadcast variables.理解Spark的架构,需要从这个入 ...
- android 特卖列表倒计时卡顿问题
在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成.当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大 ...
- 最简单的基于librtmp的示例:接收(RTMP保存为FLV)
===================================================== 最简单的基于libRTMP的示例系列文章列表: 最简单的基于librtmp的示例:接收(RT ...
- pig的内置函数小总结(不全)
piggybank里面有很多函数,可以用register和define调用.也可以用java仿照piggybank自行开发. 比如读sequence二进制文件,可以用piggybank里面函数Sequ ...
- SVM 使用朗格朗日乘子得到权重向量
紧跟前一篇SVM博文,下面我们用数学推导来导出权重的计算方法.
- iOS 使用AVAudioPlayer开发录音功能
最近要做一个类似对讲的功能,所以需要用到录音上传,然后再播放的功能. 一.音频格式分析 因为之前没研究过音频这块,所以很多音频格式都是第一次见. AAC: AAC其实是"高级音频编码(adv ...
- 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习
http://blog.csdn.net/pipisorry/article/details/48894963 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 异常驱动的开发(Exception-Driven Development)
你的网站或应用程序存在哪些问题?如果你在等着用户来告诉你,那么你只能看到所有的问题中已经暴露的那极小的一部分.要知道,那只是"冰山一角"! 而且,如果你真的是在守株待兔,我不得不很 ...
- [信号处理技术]关于EMD的产生
通俗易懂,有助于理解EMD和HHT,就原封不动的搬过来了. 原文链接:关于EMD的产生 自傅里叶变换与频谱分析技术产生,人们得以从另外一个角度观察时域信号,信号里各个点的密集程度,得以确定性地度量.之 ...
- html详解(二)
4.多媒体标签 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...