首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用FMDB从sqlite检索数据并保存到数组中

FMDB是一个开源的iOS数据库框架,它提供了一种简单、高效的方式来使用SQLite数据库。使用FMDB从SQLite检索数据并保存到数组中的步骤如下:

  1. 首先,确保已经将FMDB添加到你的项目中。你可以通过CocoaPods或手动下载并添加FMDB的源代码。
  2. 导入FMDB库到你的代码文件中:import FMDB
  3. 创建一个FMDatabase对象,该对象表示一个SQLite数据库。你可以使用数据库的路径来初始化它:let databasePath = // SQLite数据库文件路径 let database = FMDatabase(path: databasePath)
  4. 打开数据库连接:if database.open() { // 数据库连接成功 } else { // 数据库连接失败 }
  5. 构建SQL查询语句,并执行查询:let query = "SELECT * FROM tableName" if let resultSet = try? database.executeQuery(query, values: nil) { // 查询成功 while resultSet.next() { // 从resultSet中获取数据,并保存到数组中 } } else { // 查询失败 }
  6. 在查询结果集中,使用适当的方法从每一行中提取数据,并将其保存到数组中。例如,如果每一行包含一个名为"columnName"的字符串字段,你可以使用如下代码将其保存到数组中:let value = resultSet.string(forColumn: "columnName") yourArray.append(value)
  7. 关闭数据库连接:database.close()

通过以上步骤,你可以使用FMDB从SQLite检索数据并保存到数组中。请注意,这只是FMDB的基本用法示例,你可以根据具体需求进行更复杂的查询和数据处理操作。

推荐的腾讯云相关产品:云数据库 TencentDB,产品介绍链接地址:https://cloud.tencent.com/product/cdb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Realm、WCDB与SQLite移动数据库性能对比测试

三、测试数据 对于以下测试数据,只是给出一次测试后的具体数值供参考,经过反复测试后的,基本都在这个时间量级上。 这里测试用的是纯SQLite,没有用FMDB。...已经建立索引,需要注意的是,如果是检索有大量重复数据的字段,不适合建立索引,反而会导致检索速度变慢,因为扫描索引节点的速度比全表扫描要慢。...按照参考资料[3]的测试结果,Realm在插入速度上比SQLite慢,比用FMDB快,而查询是比SQLite快的。...,不同于SQLite的SQL语句(即使用FMDB封装的操作依然有点麻烦),Realm在日常使用上非常简单,起码在这次测试的例子两个数据库同样的一些操作,Realm的代码只有SQLite的一半。...查询操作太简单了,一行代码根据查询目的来获取查询结果的数组。 支持KVC和KVO。 支出数据库加密。 支持通知。

3.7K10

iOS之手把手教你学会使用sqlite应用于实际开发

相信大部分的开发者在实际开发,可能项目都会有要求实现部分的数据的持久化保存,而在移动开发,基本推荐使用轻量级的关系数据库--sqlite,而FMDB就是基于sqlite封装的第三方开源库, 这里就详细的讲一下...iOS如何方便的使用FMBD进行项目开发。...---- -->小tips:FMDB如何正确使用select语句,返回我们想要的结果!...---- 贴一下正常的使用方法:因为我们一般在iOS使用select语句,不仅仅是检验操作语句,而是要展示数据-->一般是多条数据,所有可以我通常是返回一个数组展示查询结果!...因为FMDB的都是使用@“”,并不会存在编译报错的问题,所有不好检验。 ---- 但是,SqliteManger只能查询,不能进行更新!

1.5K30
  • iOS---数据离线缓存

    离线缓存的思路 当第一次打开应用程序时,把界面加载好的数据存到沙盒中 当下一次进入应用程序时,首先从沙盒中找 如果没有网络,直接加载上次保存的数据,或者没有比较新的数据沙盒中加载数据。...需要缓存的数据如何保存 sqlite3 框架FMDB 操作数据库的工具类 static FMDatabase *_db; + (void)initialize { // 1.打开数据库...blob NOT NULL, idstr text NOT NULL);"]; } 保存到沙盒中得数据 + (void)saveStatuses:(NSArray *)statuses {...// statuses是字典数组 // 要将一个对象存进数据库的blob字段,最好先转为NSData // 一个对象要遵守NSCoding协议,实现协议相应的方法,才能转成NSData...executeUpdateWithFormat:@"INSERT INTO t_status(status, idstr) VALUES (%@, %@);", statusData, status[@"idstr"]]; } } 数据取出缓存数据

    1.1K120

    老司机出品——数据持久化之基于FMDB的ORM数据库设计

    基于FMDB的ORM数据库设计 这次呢,我们来说说iOS数据持久化的几种方案。...容器内可以盛放的数据类型主要有Boolean/Data/Date/Number/String。 使用的时候主要是bundle或者沙盒中读取文件为数组或者字典后取数据。...---- 数据库及其扩展封装 在iOS,默认是携带sqlite3数据库的。 我们先来看看sqlite3是什么?...而在OC中使用sqlite3目前又主要分为3方式: 使用sqlite3提供的库函数 FMDB CoreData sqlite3提供的库函数 sqlite3 本身是一套纯C的API,使用起来因人而异,有的喜欢有的不适应...惯得 CoreData CoreData是苹果在iOS5之后推出的一款ORM数据库方案,同样他也是针对sqlite3的一种封装。使用它开发者可以只关心数据模型数据,而不应考虑数据如何操作。

    1.2K30

    为什么要从 FMDB 迁移到 WCDB?

    同时,也希望通过本文全面地介绍 WCDB 和 FMDB使用方式、性能等方面的差异,以及迁移可能遇到的问题,帮助开发者决定是否进行迁移。...平滑迁移 文件格式 由于 FMDB 和 WCDB 都基于 SQLite ,因此两者在数据库的文件格式上一致。用 FMDB 创建、操作的数据库,可以直接通过 WCDB 打开、使用。...因此,开发者可以平滑地 FMDB 迁移到 WCDB 。 性能比较 对于已经上线运行的项目,解决性能瓶颈会是一个常见的迁移理由。...在多线程写操作的测试FMDB 直接返回错误 SQLITE_BUSY,无法完成。...数据库升级 SQLite数据库升级一直是一个比较繁杂的问题。 通常的做法是,开发者自行定义一个版本号,保存下来。数据库创建时每次检查版本号,若版本号较低,则对其字段进行升级,更新版本号。

    2.9K00

    FMDB

    于是,开源社区中就出现了一系列将 SQLite API 进行封装的库,而 FMDB (https://github.com/ccgus/fmdb) 则是开源社区的优秀者。...使用说明 ---- 该使用说明主要翻译自 fmdb 的 github 项目说明文档: https://github.com/ccgus/fmdb 引入相关文件 首先将 FMDB github 上 clone...如果你传入的参数是空串:@”” ,则 fmdb 会在临时文件目录下创建这个数据库,如果你传入的参数是 NULL,则它会建立一个在内存数据库。...切记不能在多个线程中共同一个 FMDatabase 对象并且在多个线程同时使用,这个类本身不是线程安全的,这样使用会造成数据混乱等问题。...总结 ---- FMDBSQLite API 进行了很友好的封装,使用上非常方便,对于那些使用Sqlite API 来进行数据库操作的 app,可以考虑将其迁移到基于 FMDB 上,这对于以后数据库相关功能的开发维护

    57210

    【Android 逆向】使用 DB Browser 查看修改 SQLite 数据库 ( Android 应用数据目录拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )

    文章目录 一、 Android 应用数据目录拷贝 SQlite3 数据库文件 二、使用 DB Browser 工具打开 SQlite3 数据库文件 一、 Android 应用数据目录拷贝 SQlite3...数据库文件 ---- 进入 /data/data/com.qidian.QDReader/databases 目录 , 拷贝 2 个 sqlite3 数据库文件到 sd 卡 ; cp download.db.../sdcard/Pictures/ cp ywloginmta.db /sdcard/Pictures/ 将 SQlite 数据库文件拷贝到 Windows 文件系统 , 二、使用 DB Browser...工具打开 SQlite3 数据库文件 ---- 将数据块文件拖动到 DB Browser 工具 ; 数据库打开成功 ; 右键点击表的第一个选项 , 选择浏览表 ; 可以查看表的字段 ;

    2K10

    SQLite 并发的四种处理方式

    下面我们通过 iOS 四个常用类库 (SQLite.swift, FMDB, GRDB, Core Data) 来看看这些设计。...SQLite.swift 方案 SQLite.swift 采用了最简单粗暴的一种方案,使用者只会得到一个数据库连接,所有的操作都是在该连接上串下执行,类库的作者并没有提供数据库连接池类似的特性。...FMDB 方案 FMDBSQLite.swift 一样都是采用串行设计,只不过 FMDB 在此基础上做了些加强:FMDB使用者不会接触到数据库连接而是通过在 API 闭包组织语句来实现数据库访问...GRDB 方案 此方案借鉴了 FMDB 的 API 设计,使用者通过在闭包组织语句来实现数据库访问。不过与前两个相比,GRDB 最大的不同就是它不再使用串行队列设计。...如果搞的大而全的话则有可能导致 SQLite 的执行效率变得很差。 总体而言,FMDB 和 GRDB 采用的方式安全性和灵活性上会更好一点。

    6.9K70

    iOS---iOSSQLite使用

    一.SQLite使用 采用SQLite数据库来存储数据SQLite作为一小型数据库,应用ios,跟前三种保存方式相比,相对比较复杂一些。还是一步步来吧!....dylib与前者的区别暂时不知,两者应该差不多);在项目文件中头文件或者源文件添加头文件#import "/usr/include/sqlite3.h" 第二步:开始使用SQLite: 1.打开数据库...注意:写入数据库,字符串可以采用char方式,而数据取出char类型,当char类型有表示中文字符时,会出现乱码。...这是因为数据库默认使用ascII编码方式。所以要想正确数据取出中文,需要用NSString来接收数据库取出的字符串。...二.FMDB使用 github地址是https://github.com/ccgus/fmdb // 继承 # pod 'FMDB/SQLCipher' 1.FMDB的创建: NSString

    1.4K80

    iOS开发——FMDB使用

    今天决定给手上的项目加上一个数据库,用来进行数据持久化操作,关于在iOS端的数据持久化方式的差异,这里也就不再赘述,相信如果真实使用并且去感受过的人,有自己的评判标准。...在比较了Realm、SQLite之后,我决定在项目中依然使用SQLite数据库,切还是使用FMDB这个第三方库来简化操作。...SQLite语句,我自身来说,感觉其实没有那么好的记忆力,所以我又花了一点点时间来温习FMDB的常规操作,想到自己从来没有总结过数据库这方面的知识,今天就花一点点时间,对iOS端SQLite数据库做一点操作层面的总结...SQLite数据库,其实并不难学,打败许多初学者的,我觉得应该是它C语言中繁琐的API。我之前说我记不住,这套API,我真的看几次忘几次。所以才有了应运而生的FMDB。...建表以及关闭表 使用数据库的第一件事,就是建立一个数据库。要注意的是,在iOS环境下,只有document directory 是可以进行读写的。

    76830

    FMDB到WCDB、微信团队怎么说?

    的都知道,就像Android开发中使用LitePal一样,都是在SQLite的基础上封装的移动数据库框架,WCDB是微信团队提供一个高效、易用、完整的移动端存储方案。 ...      一:关系型数据库,代表有CoreData、FMDB等       CoreData:微信团队在公众号的文章对它的总结是这样:它是苹果内建框架,和Xcode深度结合,可以很方便进行ORM;...FMDB:它基于SQLite封装,对于有SQLite和ObjC基础的开发者来说,简单易懂,可以直接上手;而缺点也正是在此,FMDB只是将SQLite的C接口封装成了ObjC接口,没有做太多别的优化,即所谓的胶水代码...这里吧官方的文档给大家,有需要有兴趣的可以看看,这部分的内容以及下面FMDB迁移到WCDB的内容我们会抓们整理出来,因为项目我也准备迁移到WCDB,等搞定会把相应新的分享出来。...4、FMDB迁移到WCDB      这部分的内容上面提到自己在准备迁移到WCDB,所以就等迁移完成了会分享出心得。

    2.2K90

    iOS本地数据存储

    数据存储可以分为两步:首先是将对象转换成二进制数据,这一步也叫序列化;相反,将二进制数据转换成对象则称为反序列化;然后是考虑二进制数据如何保存和读取。...SQLite3和FMDB SQLite3是一款轻型的关系型数据库,在移动端中广泛应用。...FMDB FMDBSQLite数据库进行封装,开放OC的接口便于开发者接入,是很普遍使用的iOS第三方数据库。 GitHub仓库地址,也可以使用pod接入。...对象序列化 前面介绍了各种存储的工具,那么如何把运行的对象序列化成第三方库呢?...SQLite3是iOS中最常用的数据库,通常我们会第三方封装库FMDB来操作,简化代码逻辑。 如果涉及到安全相关的敏感数据,则不应该保存在文件、数据库等可以被抓取的地方。

    3K20

    iOS原生sqlite3框架操作数据

    iOS开发的基本上都知道fmdb,自从用了fmdb之后都忘记了原生的sqlite3操作了(fmdb太好用了)。...SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统配置。...需要注意的是: 1,有些数据库会有要求在每条SQL命令的末尾加上分号,而SQLite则属于另一类,TA的语句末尾不使用分号; 2,SQL对大小写不敏感 1. SQLite基础 1.1....创建数据库 创建数据库前需要加入libsqlite3.0.tbd依赖以及引入sqlite3.h头文件#import 1.使用sqlite3_open函数打开数据库 2.使用sqlite3...查询数据 1.使用sqlite3_prepare_v2函数预处理SQL语句 2.使用sqlite3_bind_text函数绑定参数 3.使用sqlite3_step函数执行SQL语句,遍历结果集 4.使用

    1.3K50

    微信移动端数据库组件 WCDB 系列:iOS 基础篇(一)

    FMDB 它基于SQLite封装,对于有SQLite和ObjC基础的开发者来说,简单易懂,可以直接上手;而缺点也正是在此,FMDB只是将SQLite的C接口封装成了ObjC接口,没有做太多别的优化...凡是SQLite支持的语法规则,WINQ基本都有其对应的接口。且接口名称与SQLite的语法规则基本保持一致。对于熟悉SQL的开发者,无须特别学习即可立刻上手使用。...例如: [1500348818035_4408_1500348818528.png] 这段代码数据取出了消息的最新的修改时间,并以此将此时间作为消息的创建时间,新建了一个message。...[1500352766432_6916_1500352766504.png] columnTypeForWCDB接口定义类对应数据的类型 unarchiveWithWCTValue:接口定义数据库类型反序列化到类的转换方式...即,将NSDate以二进制数据的形式存到数据

    6.1K31

    iOS快速入门

    View不拥有其显示的数据,它是通过data source(也算一种特殊的delegate)Controller那里拿数据,而数据来自Model。...推荐使用代码提示宏定义的NS_ENUM()枚举模块来创建,它可以提供更严谨的类型检测和代码补完功能。 私有变更应该在类的私有类别,不需要加private等词语来进行修饰。...init方法返回值使用instancetype取代id作为返回。[原因] 单例必须线程安全。...3.x 使用 FMDB FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API [iOS]数据库第三方框架FMDB详细讲解 FMDB 使用方法 libextobjc...为了正常显示,使用一个单一的containerView占满全部,然后把所有的subview添加到containerView

    61820

    微信移动端数据库组件WCDB系列(一)-iOS基础篇

    FMDB   它基于SQLite封装,对于有SQLite和ObjC基础的开发者来说,简单易懂,可以直接上手;而缺点也正是在此,FMDB只是将SQLite的C接口封装成了ObjC接口,没有做太多别的优化,...如下 对于一个已有的ObjC类, 引用WCDB框架头文件#import ,定义类遵循WCTTableCoding协议 WCDB_PROPERTY用于在头文件声明绑定到数据库表的字段...例如: 这段代码数据取出了消息的最新的修改时间,并以此将此时间作为消息的创建时间,新建了一个message。这种情况下,就可以使用as重定向。...columnTypeForWCDB接口定义类对应数据的类型 unarchiveWithWCTValue:接口定义数据库类型反序列化到类的转换方式 archivedWCTValue接口定义类序列化到数据库类型的转换方式...即,将NSDate以二进制数据的形式存到数据。完成后会自动创建如下的文件模版: 然后只需将NSDate和NSData互相转换的方式填上去即可。

    2.5K81

    Swift实践:使用CoreData完成一个通讯录存储

    然而这么一个成熟,被实践检验过的代码库反而在国内使用并不是特别多。FMDB、Realm等等在被广泛使用。经常在面试的时候问iOSer是不是了解数据库,回答都是了解。...再一细问,很多人也都是只使用到了FMDB,对于CoreData却是了解甚少。 后来想了想,可能是因为CoreData的入门成本有点高,而且相关的中文资料比较少的缘故吧。...如果保存失败,进行处理 保存到数组,更新UI 3. 更新一个通讯录的列表页Demo 需求:完成一个通讯录的列表页。...要求: 本地数据读取名字列表 点击增加可以添加一个名字 添加的名字可以保存到本地数据 好,接下来咱们来一步一步实现这个需求。...managedObectContext.save() } catch { fatalError("无法保存") } // 步骤五:保存到数组

    1.7K40

    微信团队分享:微信移动端的全文检索多音字问题解决方案

    另外:微信团队在另一个文章《微信手机端的本地数据全文检索优化之路》 ,分享了更为详细的全文检索优化思路,建议有兴趣的开发者可以深入的看看。...优点: 用户修改昵称或者备注以后,能够快速响应及时建立索引; 将后台巨大的计算量均摊到用户手机上,节省成本; 对于姓名汉字的读音,可以用任意一个读音搜索出来。...以上两种场景可以看出,方案三在极限场景中会出现占用超大数据量的情况,所以方案三不可用。...更为详细的微信全文检索优化思路请见《微信手机端的本地数据全文检索优化之路》。...》 《微信团队分享:微信Android版小视频编码填过的那些坑》  《微信手机端的本地数据全文检索优化之路》  《企业微信客户端组织架构数据的同步更新方案优化实战》 《微信团队披露:微信界面卡死超级

    5.9K33
    领券