iOS 使用FMDB进行数据库操作
2013-03-26 18:10
423 查看
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
2、获得存放数据库文件的沙盒地址。
View Row Code
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 | } |
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 (![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 | } |
View Row Code
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 | } |
View Row Code
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 | } |
8、查询
View Row Code
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 | } |
相关文章推荐
- iOS开发中使用FMDB的网文iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- iOS 使用FMDB进行数据库操作
- IOS 之使用FMDB进行SQLite数据库操作——表的创建与修改,以及数据的增删改查和多线程操作数据库
- iOS 使用FMDB进行数据库操作
- 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学习笔记—2—数据库操作(使用FMDB)
- IOS-20-数据库操作之(SQLite第三方封装库FMDB)的基础入门使用及demo源码