谈谈用SQLite和FMDB而不用Core Data 发布于:2014-04-22 11:22阅读数:4235 凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要. 更重要的是,不 “”   阅读器 Core DataSQLiteFMDB 来源:伯乐在线 凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加…
凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要.更重要的是,不值得花时间和精力去写自己的系统去代替它.真的,使用Core Data吧. 这个转载老外的感想想法 为什么我不使用Core Data Mike Ash写到: 就我自己而言,我不是个狂热粉丝.我发现API是笨拙的,并且框架本身对于大量的数据是极其缓慢的. 一个实际的例子:10,000条目 想象一个RSS阅读器,一个…
本文转载至 http://blog.csdn.net/majiakun1/article/details/38680147 为什么我不使用Core Data Mike Ash 写到: 就个人而言,我不是个狂热粉丝.我发现 (Core Data 的) API 是笨拙的,并且框架本身对于超过一定数量级的数据的处理是极其缓慢的. 一个实际的例子:10,000 个条目 想象一个 RSS 阅读器,一个用户可以在一个 feed 上点击右键,并且选择标记所有为已读. 实际实现上,我们有一个带有 read 属性…
前几篇已经写完了SQLite与FMDB的基本内容以及衍生出来的知识点,我们这一篇主要讲述FMDB与SQLite在基本使用中的区别,大约需要5-10分钟时间讲述内容,欢迎大家指正. 基本使用区别 1.数据库的操作对象 (1)SQLite通过sqlite3 sqlite3 *_db; (2)FMDB方式 FMDatabase *db; 2.打开数据库方式 (1)SQLite方式 - (void)openDB{ //获取数据库文件路径 NSString *doc = [NSSearchPathForD…
Core Data 和 SQLite 是什么关系 core data是对sqlite的封装,因为sqlite是c语言的api,然而有人也需要obj-c的api,所以有了core data ,另外,core data不仅仅是把c的api翻译成oc的api,还提供了一些管理的功能,使用更加方便. 1. App升级之后数据库字段或者表有更改会导致crash,CoreData的版本管理和数据迁移变得非常有用,手动写sql语句操作还是麻烦一些. 2. CoreData不光能操纵SQLite,CoreD…
在iOS 开发中,总会用到数据库的操作,来实现增.删.改.查. 尤其是查询. 一旦涉及到查询的操作,那就非得用数据库不可了.   SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库. iOS SDK 从诞生之日起就支持SQLite. 在使用时,只需要加入  libsqlite3.dylib ,并引入 sqlite3.h 头文件即可. 但是,原生的SQLite API 在使用上 非常不便,于是,开源社区就出现了一系列的 将SQLite API…
iOS中的SQLite与Android中的一模一样,仅仅是调用方法有差异.假设单从调用来讲,Android封装的一套helper更好用一些,而iOS原生的用C语言的几个函数在操作,比較麻烦.只是引入第三方框架FMDB,使用起来就方便非常多. 一.SQLite的基本使用 使用步骤: 1.导入系统框架(C语言). (libsqlite3) 2.头文件#import<sqlite3.h>. . sqlite3_open(fileName.UTF8String, &_db); 打开或者创建一个…
SQLite: SQLite是一款轻量级型的数据库,资源占用少.性能良好和零管理成本,具有零配置(无需安装和管理配置).独立(没有额外依赖).储存在单一磁盘文件中的一个完整的数据库.源码完全的开源.比一些流行的数据库在大部分普通数据库操作要快……功能特性:在大型系统和处理大批量数据时不适用      SQLite引擎不是程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分,所以主要的通信协议是在编程语言内的直接API调用:在APP开发中将SQLite集成到应用的沙盒目录下(SQLite是…
/** * 对数据库加密 * * @param path path description * * @return return value description */ + (BOOL)encryptDatabase:(NSString *)path; /** * 对数据库解密 * * @param path path description * * @return return value description */ + (BOOL)unEncryptDatabase:(NSString…
1.root你的手机 2.cmd进入DOS界面,并且cd 转换目录到AndroidSDK\platform-tools中 3.输入adb shell 4.输入su,进入root权限,此时$变为#,输入ls命令可以看到手机目录 5.输入chomd 777 /data/data    这一步的作用是改变目录/data/data的权限,使其可以打开 6.在eclipse中找到 DDMS,它在 打开即可进入目录 7.此时你想打开哪个应用的目录,仿照第五步进行修改权限,进入你所要求的目录 8.点击红框按钮…
jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化 这样,我们就可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax(), 举例如下:…
iOS中数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding (NSKeyedArchiver\NSkeyedUnarchiver) SQlite3 Core Date Plist.Preference.NSCoding的存储方式 详见 iOS开发 文件存储方式 数据库的存储方式 Core Date:Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将O…
首先这里要说明一下,为什么用FMDB而不用Core Data呢,因为我们不知道Core Data是如何映射对象里面的属性关系的,如果我们更改了属性的话,就会报错 首先是创建LKDBHelper对象 LKDBHelper * dbHelper = [LKDBHelper getUsingLKDBHelper]; 然后根据model创建表 [dbHelper createTableWithModelClass:[MyWorkModelclass]]; 好了,这就创建完了,接下来看看这个model里面…
资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 为什么要有缓存 应用需要离线工作的主要原因就是改善应用所表现出的性能.将应用内容缓存起来就可以支持离线.我们可以用两种不同的缓存来使应用离线工作.第一种是**按需缓存**,这种情况下应用缓存起请求应答,就和Web浏览器的工作原理一样:第二种是**预缓存**,这种情况是缓存全部内容(或者最近n条记录)以便离线访问. 像第14…
人魔七七:http://www.cnblogs.com/qiqibo/ 为什么要有缓存 应用需要离线工作的主要原因就是改善应用所表现出的性能.将应用内容缓存起来就可以支持离线.我们可以用两种不同的缓存来使应用离线工作.第一种是**按需缓存**,这种情况下应用缓存起请求应答,就和Web浏览器的工作原理一样:第二种是**预缓存**,这种情况是缓存全部内容(或者最近n条记录)以便离线访问. 像第14章中开发的Web服务应用利用按需缓存技术来改善可感知的性能而不是提供离线访问.离线访问只是无心插柳的结果…
存储缓存: 第三方应用只能把信息保存在应用程序的沙盒中.因为缓存数据不是用户产生的,所以它应该被保存在NSCachesDirectory,而不是NSDocumentsDirectory.为缓存数据创建独立目录是一项不错的实践.在下面的例子中,我们将在Library/caches文件夹下创建名为MyAppCache的目录.可以这样创建: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDom…
[目录] 0x0 前言 0x1 领域驱动的安全 1.1 领域驱动的设计 1.2 领域驱动的安全示例 0x2 使用参数化查询 2.1 参数化查询 2.2 Java中的参数化语句 2.3 .NET(C#)中的参数化语句 2.4 PHP中的参数化语句 2.5 PL/SQL中的参数化语句 0X3 移动应用中的参数化语句 3.1 iOS应用程序中的参数化语句 3.2 Android应用程序中的参数化语句 3.3 HTML浏览器中存储的参数化语句 0x4 输入验证 4.1 白名单 4.2 黑名单 4.3 J…
我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1 首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置.架构,提供通用组件和辅助工具的基础项目.以达到,克隆或者下载就可以快速装配新项目,聚焦于实际的应用逻辑开发.所以,我命名这个项目为“base”,而且项目会在github上同步,可以配合博客和git提交日志查看. 我以Single View Application为例,创建项目.我习惯于纯代码编程,该模板初始结…
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plist文件可以用来存储:字典.数组.字符串等对象数据,可以混搭存储 [注]iOS开发中,plist文件一般用于app的配置信息 [注]ios开发工程中,允许多个plist文件共存. [注]plist文件用来存储小数据量的数据 优点:可视化以及可编辑性非常方便 plist文件的操作 // 例如 NSStr…
/** 一,数据存储 常用方式(5种) 1,XML属性列表 -- 保存在Doucuments文件夹 2,偏好设置(NSUserDefault)-- Library/Preference 需要配合writetoFile来配合使用,保存到沙盒 3,归档(NSKeyedArchiver) -- 实现coding协议 4,sqlite --使用sqlite语法操作数据库 5,Core Data -- 由系统生成数据库 Documents : 保存应用运行时生成的需要持久化的数据,itunse同步时会备份…
一.介绍 在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,iOS还提供了另外几种重要的数据存储方式.虽然这些方式最后还是将数据存储在文件中,但是iOS以一套系统性有制度的方式来管理这些数据,让数据不再是“散乱”的存储在文件中.如此一来,我们很容易处理大量的数据,并且同时兼顾性能.最常用的有三种方式: 1.PLIST文件 2.SQLite数据库 3.Core Data 二.PLIST文件 以XML格式存储的文本文件. 存储的数据具有“属性名称与属性值…
/*****  该文一共总结了以下六种文件操作   1.NSKeyedArchiver. 2.对类对象进行归档 <NSCoder>协议 3.文件管理类 NSFileManger  4.对文件操作 plist 5.NSUserDefault 单例类 6.Json解析********/ /* 1.如果对象是NSString.NSDictionary.NSArray.NSData.NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中 将一个…
Δ一.   .plist文件 .plist文件是一个属性字典数组的一个文件: .plist文件可以用来存储:字典.数组.字符串等对象数据,可以混搭存储 [注]iOS开发中,plist文件一般用于app的配置信息 [注]ios开发工程中,允许多个plist文件共存. [注]plist文件用来存储小数据量的数据 //优点:可视化以及可编辑性非常方便 [总结] 1.plist文件操作其实就是一个根目录是字典,内部数据各种嵌套操作. 2.如果想要修改plist中的某个字段内容,一层一层去找,找到后一层一…
1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:…
1.FMDB简介 什么是FMDBFMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 为什么使用FMDB使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 FMDB在GitHub上的链接 https://github.com/ccgus/fmdb 参考 讲解1 讲解2 讲解3…
1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 3.FMDB的github地址 https://github.com/ccgus/fmdb 二.核心类 FMDB有三个主要的类 (1)FMDatabase 一个FMDatabase对象就代表一个…
1.SQLite 数据库 SQLite 是一种轻型的嵌入式数据库,安卓和 iOS 开发使用的都是 SQLite 数据库.它占用资源非常低,在嵌入式设备中,可能需要几百 K 的内存数据就够了.他的处理速度比 Mysql.PostgreSQL 这两款著名的数据库都要快.数据库的存储和 Excel 很像,以表(table)为单位.表由多个字段(列.属性.column)组成,表里面的每一行数据称为记录.数据库操作包含打开数据库.创建表,表的增.删.改.查. SQL(Structured Query La…
一.SQLite的介绍   1.为什么要存储数据?        1.1 手机数据大多都是从网络加载的,不存储,每次滚动界面都要从新发送网络请求加载数据,浪费流量      1.2 当用户没网的时候,就不能正常显示界面了      1.3 将数据存储到本地,不用每次加载,没网的时候也可从本地存储的数据拿来显示   2.存储数据的方式         Plist(NSArray\NSDictionary)           特点: 只能存储系统自带的数据类型, 比如NSDictory, NSAr…
core data   core data 基于model-view-controller(mvc)模式下,为创建分解的cocoa应用程序提供了一个灵活和强大的数据模型框架.   core data可以使你以图形界面的方式快速的定义app的数据模型,同时在你的代码中容易获取到它.core data提供了基础结构去处理常用的功能,例如保存,恢复,撤销和重做,允许你在app中继续创建新的任务.在使用core data的时候,你不用安装额外的数据库系统,因为core data使用内置的sqlite数据…
1.概述 SQLite3是一款开源的嵌入式关系型数据库,可移植性好.易使用.内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中.比如下列的创表语句是合法的: create table t_person(name, age); 为了保证可读性,建议还是把字段类型加上: create table t_person(name text, age integer); SQLite将数据划分为以下几种存储类型: integer : 整型值 real : 浮点值 te…