# 如何实现iOS FMDatabase
## 一、流程图
```mermaid
sequenceDiagram
    小白->>开发者: 请求学习iOS FMDatabase
    开发者->>小白: 确认流程并逐步教导
```
## 二、步骤表格
| 步骤 | 描述             |
|------|------------------|
| 1    | 下载FMData            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-17 04:00:15
                            
                                20阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在iPhone上是采用sqlite进行数据存储是我一种比较习惯性的做法。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2012-07-13 19:48:00
                            
                                33阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            # 如何在iOS中使用FMDatabase存储视频
作为一名经验丰富的开发者,你需要教导一位刚入行的小白如何在iOS应用中使用FMDatabase来存储视频。下面将介绍整个流程,并提供每一步所需的代码示例。
## 整体流程
下面是完成这个任务的步骤表格:
| 步骤 | 操作 |
| --- | --- |
| 1 | 创建一个iOS应用项目 |
| 2 | 导入FMDB库 |
| 3 |            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-18 05:00:50
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.创建数据库iOS数据库一般会保存在沙盒文件的Documents中NSArray *documents=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsPath=[documents firstObject];NSString *dbPat...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-04 10:37:46
                            
                                264阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在ios的开发中,我们有时需要对数据的缓存,存入本地。很常见的一种就是存入本地的数据库中,可以方便我们在本地的调用。这篇博客就简述我们常用的第三方库FMDB的使用。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-05-30 20:19:00
                            
                                87阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            # 如何使用FMDatabase执行查询操作
## 1. 流程图
```mermaid
erDiagram
    查询 -> 执行查询: 需要执行查询
    执行查询 -> 获取结果: 获取查询结果
```
## 2. 步骤及代码示例
### 步骤一:创建数据库对象
```objective-c
#import "FMDatabase.h"
// 创建数据库对象
FMDatabas            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-15 05:15:49
                            
                                19阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ARC 和 MRCFMDB作为一个优秀的通用第三方数据库框架,无论在ARC还是MRC下,都可以自动匹配。使用在FMDB中,有三个重要的类:FMDatabase:是一个提供SQLite数据库的类,每一个SQLite的对象对应一个数据库,用于执行SQL语句。FMResultSet:在FMDatabase中用于执行查询结果的类FMDatabaseQueue:在多线程下查询和更新数据库用到的类数据库的创建            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-09 11:46:53
                            
                                100阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            sqlite FMDatabase EXC_BAD错误产生原因:int字段需要用NSNumber插入            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-08 19:16:04
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            用了一会会儿的sqlite自带的函数接口,貌似有点坑。就用了fmdb,确实好用,但是要注意,插入的时候,变量应该是对            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-09 16:25:44
                            
                                84阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            项目本身启用了ARC,但需要用到FMDATABASE,而且FMDATABASE是不支持ARC的,如果调整太麻烦。后来查找到了,原来在XCODE中可以单独为源代码中的文件设置编译参数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2012-07-13 19:46:00
                            
                                51阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            这篇是其一中工作的最终实现,使用了FMDB,更具有objective-C的风格。FMDatabase *db = [[FMDatabase alloc] initWithPath:[NSString stringWithFormat:@"%s", databasePath]];
    if ([db open] == NO) {
        NSLog(@"Failed to open da            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-18 08:55:02
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            项目很多要用到数据库,数据库语句有时候容易忘记,所以把常用的一些简单语句写下来,以后忘记了可以直接来博客复制,哈哈项目中首先加入libsqlite3.dylib这个函式库。一.实例化FMDatabase//读取数据库
-(FMDatabase* )loadDB:(NSString *)dbName
{
    //localDBPath: 数据库路径,在Document中。
	NSString *            
                
         
            
            
            
                 由于新项目中使用的数据库为FMDB,所以得重新学习,特此mark一下,以免忘记,也跟初学的童鞋分享一下学习心得。1)首先导入FMDB的必要文件:FMDatabase.h
FMDatabase.m
FMDatabaseAdditions.h
FMDatabaseAdditions.m
FMDatabasePool.h
FMDatabasePool.m
FMDa            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-07 13:00:38
                            
                                130阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            第一部分:FMDB本地数据库存储数据  --使用为了保证线程安全做法 ppt   FMDatabase这个类是线程不安全的,如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题
为了保证线程安全,FMDB提供方便快捷的FMDatabaseQueue类
FMDatabaseQueue的创建
FMDatabaseQueue *queue = [FMDatabaseQueue            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-06 15:23:41
                            
                                165阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、什么是FMDB?FMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封装了SQLite的C语言API。无论项目中使用 ARC 还是 MRC,对 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。2、FMDB主要的类。2.1、FMDatabase一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句。通过指定SQLite数据库文件路径来创建FMD            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-22 12:10:46
                            
                                271阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            自己主动引用计数(APC)还是手动内存管理呢?两种都行,FMDB会在编译的时候知道你是用的哪一种,然后进行对应处理。用法FMDB有三个基本的类    FMDatabase – 表示一个单独的SQLite数据库。 用来运行SQLite的命令。    FMResultSet – 表示FMDatabase运行查询后结果集    FMDatabaseQueue – 假设你想在多线程中运行多个查询或更新。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-08-22 21:38:00
                            
                                79阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            优秀的第三方库,README 也是很优秀的,理解了 README,会对使用带来很多便利。ARC 和 MRC项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。使用在 FMDB 中有三个重要的类:
FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。
FMResultSet:用在 FMDatabase 中执行查询的结果            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-24 09:33:27
                            
                                111阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这是一个sqlite的objective-c的封装库,简单易用。主要的类也就两个:FMDatabase和FMResultSet。FMDB的g            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-10 00:40:36
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先要先导入第三方类库FMdatabase获得存放数据库文件的沙盒地址+(NSString *)databaseFilePath{NSArray *filePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentPath = [filePath            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2013-07-23 19:57:56
                            
                                428阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            优点 : 对多线程的并发操作进行处理,所以是线程安全的以OC的方式封装了SQLite的C语言API,使用起来更加的方便;FMDB是轻量级的框架,使用灵活缺点: 因为它是OC的语言封装的,只能在iOS开发的时候使用, 所以在实现跨平台操作的时候存在局限性FMDB中重要的类FMDatabase : 一个FMDatabase对象就代表一个单独的SQLite数据库, 用来执行SQL语句FMResultSe            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-09 14:49:41
                            
                                122阅读