iOS 使用FMDB进行数据库操作
2015-04-02 17:53
489 查看
[摘要]本文介绍iOS 使用FMDB进行数据库操作,并提供详细的示例代码供参考。
1、首先要先导入第三方类库FMdatabase。
2、获得存放数据库文件的沙盒地址。
View Row Code
3、创建数据库的操作
View Row Code
4、创建表
View Row Code
5、增加表数据
View Row Code
6、删除数据
View Row Code
7、修改操作与增加操作的步骤一致
8、查询
View Row Code
1、首先要先导入第三方类库FMdatabase。
2、获得存放数据库文件的沙盒地址。
View Row Code
1 | +(NSString*)databaseFilePath |
2 | { |
3 | |
4 | NSArray*filePath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); |
5 | NSString*documentPath=[filePathobjectAtIndex:0]; |
6 | NSLog(@"%@",filePath); |
7 | NSString*dbFilePath=[documentPathstringByAppendingPathComponent:@"db.sqlite"]; |
8 | return dbFilePath; |
9 | |
10 | } |
View Row Code
1 | +(void)creatDatabase |
2 | { |
3 | db = [[FMDatabasedatabaseWithPath:[selfdatabaseFilePath]]retain]; |
4 | } |
View Row Code
1 | +(void)creatTable |
2 | { |
3 | //先判断数据库是否存在,如果不存在,创建数据库 |
4 | if (!db) { |
5 | [selfcreatDatabase]; |
6 | } |
7 | //判断数据库是否已经打开,如果没有打开,提示失败 |
8 | if (![dbopen]) { |
9 | NSLog(@"数据库打开失败"); |
10 | return; |
11 | } |
12 | |
13 | //为数据库设置缓存,提高查询效率 |
14 | [dbsetShouldCacheStatements:YES]; |
15 | |
16 | //判断数据库中是否已经存在这个表,如果不存在则创建该表 |
17 | if(![dbtableExists:@"people"]) |
18 | { |
19 | [dbexecuteUpdate:@"CREATE TABLES people(people_id INTEGER PRIMARY KEY AUTOINCREAMENT, name TEXT, age INTEGER) "]; |
20 | |
21 | |
22 | NSLog(@"创建完成"); |
23 | } |
24 | |
25 | } |
View Row Code
1 | +(void)insertPeople:(People*)aPeople |
2 | { |
3 | if (!db) { |
4 | [selfcreatDatabase]; |
5 | } |
6 | |
7 | if (![dbopen]) { |
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([rsnext]) |
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 | } |
View Row Code
1 | +(void)deletePeopleByID:(int)ID |
2 | { |
3 | if (!db) { |
4 | [selfcreatDatabase]; |
5 | } |
6 | |
7 | if (![dbopen]) { |
8 | NSLog(@"数据库打开失败"); |
9 | return; |
10 | } |
11 | |
12 | [dbsetShouldCacheStatements:YES]; |
13 | |
14 | //判断表中是否有指定的数据, 如果没有则无删除的必要,直接return |
15 | if(![dbtableExists:@"people"]) |
16 | { |
17 | return; |
18 | } |
19 | //删除操作 |
20 | [dbexecuteUpdate:@"delete from people where people_id = ?",[NSStringstringWithFormat:@"%d",ID]]; |
21 | |
22 | [dbclose]; |
23 | } |
8、查询
View Row Code
1 | +(NSArray*)getAllPeople |
2 | { |
3 | |
4 | if (!db) { |
5 | [selfcreatDatabase]; |
6 | } |
7 | |
8 | if (![dbopen]) { |
9 | NSLog(@"数据库打开失败"); |
10 | returnnil; |
11 | } |
12 | |
13 | [dbsetShouldCacheStatements:YES]; |
14 | |
15 | if(![dbtableExists:@"people"]) |
16 | { |
17 | returnnil; |
18 | } |
19 | |
20 | //定义一个可变数组,用来存放查询的结果,返回给调用者 |
21 | NSMutableArray*peopleArray=[[NSMutableArrayalloc]initWithArray:0]; |
22 | //定义一个结果集,存放查询的数据 |
23 | FMResultSet*rs=[dbexecuteQuery:@"select * from people"]; |
24 | //判断结果集中是否有数据,如果有则取出数据 |
25 | while ([rsnext]) { |
26 | People*aPeople=[[Peoplealloc]init]; |
27 | |
28 | aPeople.peopleID = [rs intForColumn:@"people_id"]; |
29 | aPeople.name = [rs stringForColumn:@"name"]; |
30 | aPeople.age = [rs intForColumn:@"age"]; |
31 | //将查询到的数据放入数组中。 |
32 | [peopleArrayaddObject:aPeople]; |
33 | } |
34 | return[peopleArrayautorelease]; |
35 | } |
相关文章推荐
- iOS 使用FMDB进行数据库操作(一)
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS- Swift:使用FMDB进行数据库操作(线程安全:增删改查)
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS开发中使用FMDB的网文iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- IOS 之使用FMDB进行SQLite数据库操作——表的创建与修改,以及数据的增删改查和多线程操作数据库
- [置顶] Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作
- iOS数据库操作(使用FMDB)
- iOS学习笔记(十六)——数据库操作(使用FMDB)
- iOS数据库操作fmdb1: FMDB数据库使用
- iOS学习笔记(十六)——数据库操作(使用FMDB) .
- iOS学习——数据库操作(使用FMDB)