FMDB使用

1、首先要先导入第三方类库FMdatabase。

2、获得存放数据库文件的沙盒地址。

1 +(NSString *)databaseFilePath 
2
3  
4 NSArray *filePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
5 NSString *documentPath = [filePath objectAtIndex:0]; 
6 NSLog(@"%@",filePath); 
7 NSString *dbFilePath = [documentPath stringByAppendingPathComponent:@"db.sqlite"]; 
8 return dbFilePath; 
9  
10 }

3、创建数据库的操作

1 +(void)creatDatabase 
2
3 db = [[FMDatabasedatabaseWithPath:[selfdatabaseFilePath]] retain]; 
4 }

4、创建表

1 +(void)creatTable 
2
3 //先判断数据库是否存在,如果不存在,创建数据库 
4 if (!db) { 
5 [selfcreatDatabase]; 
6
7 //判断数据库是否已经打开,如果没有打开,提示失败 
8 if (![db open]) { 
9 NSLog(@"数据库打开失败"); 
10 return; 
11
12  
13 //为数据库设置缓存,提高查询效率 
14 [dbsetShouldCacheStatements:YES]; 
15  
16 //判断数据库中是否已经存在这个表,如果不存在则创建该表 
17 if(![dbtableExists:@"people"]) 
18
19 [db executeUpdate:@"CREATE TABLES people(people_id INTEGER PRIMARY KEY AUTOINCREAMENT, name TEXT, age INTEGER) "]; 
20  
21  
22 NSLog(@"创建完成"); 
23
24  
25 }

5、增加表数据

1 +(void)insertPeople:(People *)aPeople 
2
3 if (!db) { 
4 [selfcreatDatabase]; 
5
6  
7 if (![db open]) { 
8 NSLog(@"数据库打开失败"); 
9 return; 
10
11  
12 [dbsetShouldCacheStatements:YES]; 
13  
14 if(![dbtableExists:@"people"]) 
15
16 [selfcreatTable]; 
17
18 //以上操作与创建表是做的判断逻辑相同 
19 //现在表中查询有没有相同的元素,如果有,做修改操作 
20 FMResultSet *rs = [dbexecuteQuery:@"select * from people where people_id = ?",[NSStringstringWithFormat:@"%d",aPeople.peopleID]]; 
21 if([rs next]) 
22
23 NSLog(@"dddddslsdkien"); 
24 [dbexecuteUpdate:@"update people set name = ?, age = ? where people_id = 1",aPeople.name,[NSStringstringWithFormat:@"%d",aPeople.age]]; 
25
26 //向数据库中插入一条数据 
27 else{ 
28 [dbexecuteUpdate:@"INSERT INTO people (name, age) VALUES (?,?)",aPeople.name,[NSStringstringWithFormat:@"%d",aPeople.age]]; 
29
30  
31 }

6、删除数据

1 +(void)deletePeopleByID:(int)ID 
2
3 if (!db) { 
4 [selfcreatDatabase]; 
5
6  
7 if (![db open]) { 
8 NSLog(@"数据库打开失败"); 
9 return; 
10
11  
12 [dbsetShouldCacheStatements:YES]; 
13  
14 //判断表中是否有指定的数据, 如果没有则无删除的必要,直接return 
15 if(![dbtableExists:@"people"]) 
16
17 return; 
18
19 //删除操作 
20 [db executeUpdate:@"delete from people where people_id = ?", [NSStringstringWithFormat:@"%d",ID]]; 
21  
22 [db close]; 
23 }

7、修改操作与增加操作的步骤一致

8、查询

1 +(NSArray *)getAllPeople 
2
3  
4 if (!db) { 
5 [selfcreatDatabase]; 
6
7  
8 if (![db open]) { 
9 NSLog(@"数据库打开失败"); 
10 return nil; 
11
12  
13 [dbsetShouldCacheStatements:YES]; 
14  
15 if(![dbtableExists:@"people"]) 
16
17 return nil; 
18
19  
20 //定义一个可变数组,用来存放查询的结果,返回给调用者 
21 NSMutableArray *peopleArray = [[NSMutableArrayalloc] initWithArray:0]; 
22 //定义一个结果集,存放查询的数据 
23 FMResultSet *rs = [dbexecuteQuery:@"select * from people"]; 
24 //判断结果集中是否有数据,如果有则取出数据 
25 while ([rs next]) { 
26 People *aPeople = [[People alloc] init]; 
27  
28 aPeople.peopleID = [rs intForColumn:@"people_id"]; 
29 aPeople.name = [rs stringForColumn:@"name"]; 
30 aPeople.age = [rs intForColumn:@"age"]; 
31 //将查询到的数据放入数组中。 
32 [peopleArray addObject:aPeople]; 
33
34 return [peopleArray autorelease]; 
35 }
时间: 2024-10-10 05:48:36

FMDB使用的相关文章

iOS中 FMDB第三方SQLite数据库 UI_20

1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:

ios开发FMDB导入SQLCipher加密数据库

转:http://www.2cto.com/kf/201407/315727.html [iOS]FMDB/SQLCipher数据库加解密,迁移

FMDB

FMDB 对 sqlite进行了封装,这样数据库的相关操作就变得灰常的简单.. 首先去这里下载FMDB:https://github.com/ccgus/fmdb 把FMDB的相关文件添加到工程 在工程中假如framwwork:libsqlite3.dylib 然后在.h中引入: [cpp] view plain copy #import "FMDatabase.h" 首先,你要使用一个数据库文件的路径来构造一个FMDB对象: [cpp] view plain copy FMDatab

FMDB 使用方法

优秀的第三方库,README 也是很优秀的,理解了 README,会对使用带来很多便利. ARC 和 MRC 项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配. 使用 在 FMDB 中有三个重要的类: FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句. FMResultSet:用在 FMDatabase 中执行查询的结果的类. FMDatabaseQueue:在多线程下查询和更新数据库用到的类. 数据库创建 F

iOS中FMDB的使用

需要用到离线缓存将数据信息存入数据库,在没有网络的时候进行加载,而iOS用的就是sqlite3数据库,用原生的sql我们也能实现,但是书写起来比较麻烦,尤其是其它语言转过来的程序员会感觉吃力,我们一般使用第三方FMDB 2 FMDB的下载地址 https://github.com/ccgus/fmdb 3在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包 4 FMDB常用类 FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句.

UI18-数据库操作:SQL FMDB

(一 )    FMDB 的打开数据库,创建表,查询 (二)执行语句: (三)存储数据,进行model的归档,反归档,并且实现nscoding协议   一个对象可以转化为data.实质上实现了NScoding协议  一个对象要遵守NSCoding协议,实现协议的方法,才能转成NSData. (四) 实现encoding协议两个方法: (五) 抽离相同代码,使用方法,或者使用Block 调用重复的代码,参数和返回值设置好. 1/外键 约束. (六)  FMDB中---多线程操作 如果要进行海量操作

iOS sqlite 增删改查 简单封装(基于 FMDB)

/** *  对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * *  基于 FMDB * *  操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整体进行操作 * *  根据 model 对象自动建表,字段类型只支持 NSString , NSIteger , float * *  用到 runtime 运行时获取 model 属性 * */ 1 // 2 // AGDatabaseManager.h 3 // 4 // Created by

iOS开发数据库篇—FMDB数据库队列(下)

iOS开发数据库篇—FMDB数据库队列(下) 一.代码示例 1.需要先导入FMDB框架和头文件,由于该框架依赖于libsqlite库,所以还应该导入该库. 2.代码如下: 1 // 2 // YYViewController.m 3 // 05-FMDB数据库队列 4 // 5 // Created by apple on 14-7-28. 6 // Copyright (c) 2014年 wendingding. All rights reserved. 7 // 8 9 #import "Y

iOS 数据存储 FMDB

FMDB有三个主要的类 1. FMDatabase    一个FMDatabase对象就代表一个单独的SQLLite数据库    用来执行SQL语句  2.FMResultSet   使用FMDatabase执行查询后的结果集合 3.FMDatabaseQueue   用于在多线程中执行多个查询或更新,它是线程安全的  文件路径有三种情况 1.具体文件路径 如果不存在会自动创建  2.空字符串@"" 会在临时目录创建一个空的数据库 当FMDatabase连接关闭时,数据库文件也被删除 

iOS FMDB--UIImage的插入与读取

1:先倒入FMDB 保存图片 #import "BaseViewController.h" #import "FMDatabase.h" #import "FMDatabaseQueue.h" #import "PPCamaraUtil.h" #import "SecondViewController.h" static const NSString *[email protected]"Base