开始使用这个存储方式的原因是  之前用的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. Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)

    源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...

  2. 修改android应用包名

    由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间. 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦. 1. ...

  3. 手把手教你轻松实现listview上拉加载

    上篇讲了如何简单快速的的实现listview下拉刷新,那么本篇将讲解如何简单快速的实现上拉加载更多.其实,如果你已经理解了下拉刷新的实现过程,那么实现上拉加载更多将变得轻松起来,原理完全一致,甚至实现 ...

  4. 01安卓像素 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

    一.基本概念 dip        : Density independent pixels ,设备无关像素. dp        :就是dip px        : 像素 dpi       :d ...

  5. Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)

    样式(style)资源 代码示例 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  6. 竞价拍卖理论的介绍(RTB模型中使用第二竞价模型,为的是纳什平衡,保护所有多方利益)

    英式拍卖 是最普通的拍卖方式,其形式是拍卖过程中,竞价按阶梯,从低到高,依次递增.最终由出价最高者获得拍卖物品(竞买人变成买受人). The first price auction: a form o ...

  7. CUDA command Profiler

    这里我不使用默认设置: timestamp gpustarttimestamp gpuendtimestamp gridsize threadblocksize dynsmemperblock sta ...

  8. Android开机键失灵启动手机的解决办法

    问题描述 Android手机的关机键损坏,无法开机. 解决方法 将手机通过USB线链接电脑,进入命令行,找到adb命令所在目录,运行如下命令: adb reboot 注意:用这种方法的前提是,如果你当 ...

  9. go-mysql,一个易用的mysql接口框架实现

    介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并 ...

  10. 面向对象编程(OOP)的五大特征-java学习之旅(1)

    这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...