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 ...
随机推荐
- Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)
源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...
- 修改android应用包名
由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间. 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦. 1. ...
- 手把手教你轻松实现listview上拉加载
上篇讲了如何简单快速的的实现listview下拉刷新,那么本篇将讲解如何简单快速的实现上拉加载更多.其实,如果你已经理解了下拉刷新的实现过程,那么实现上拉加载更多将变得轻松起来,原理完全一致,甚至实现 ...
- 01安卓像素 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
一.基本概念 dip : Density independent pixels ,设备无关像素. dp :就是dip px : 像素 dpi :d ...
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
样式(style)资源 代码示例 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- 竞价拍卖理论的介绍(RTB模型中使用第二竞价模型,为的是纳什平衡,保护所有多方利益)
英式拍卖 是最普通的拍卖方式,其形式是拍卖过程中,竞价按阶梯,从低到高,依次递增.最终由出价最高者获得拍卖物品(竞买人变成买受人). The first price auction: a form o ...
- CUDA command Profiler
这里我不使用默认设置: timestamp gpustarttimestamp gpuendtimestamp gridsize threadblocksize dynsmemperblock sta ...
- Android开机键失灵启动手机的解决办法
问题描述 Android手机的关机键损坏,无法开机. 解决方法 将手机通过USB线链接电脑,进入命令行,找到adb命令所在目录,运行如下命令: adb reboot 注意:用这种方法的前提是,如果你当 ...
- go-mysql,一个易用的mysql接口框架实现
介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并 ...
- 面向对象编程(OOP)的五大特征-java学习之旅(1)
这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...