这是一个sqlite的objective-c的封装库,简单易用。
首先,将附件中的文件加入到项目中,并在头文件中加入以下代码:
#import "FMDatabase.h"
然后,在Frameworks中导入libsqlite3.0.dylib。
1、实例化一个FMDatabase对象,并打开一个数据库,如果没有这个数据库,则会创建一个数据库
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [paths objectAtIndex:0]; NSString *dbPath = [documentDirectory stringByAppendingPathComponent:@"Test.db"]; FMDatabase *db= [FMDatabase databaseWithPath:dbPath] ; if (![db open]) { [db release]; return ; }
2、创建表
[db executeUpdate:@"CREATE TABLE Users(Name text, Age integer)"];
3、插入数据
[db executeUpdate:@"INSERT INTO Users(Name, Age) VALUES(?, ?)", @"Eric", [NSNumber numberWithInt:25]]
4、更新数据
[db executeUpdate:@"UPDATE Users SET Name = ? WHERE Name = ? ", @"Michael", @"Eric"];
5、删除数据
[db executeUpdate:@"DELETE FROM Users WHERE Name = ?", @"Michael"];
6、查询数据
NSString *userName = [db stringForQuery:@"SELECT Name FROM Users WHERE Age = ?", @"25"];
这样就查询返回了一条数据,如果查询返回多条数据怎么办呢?
FMResultSet是一个结果集,返回多条数据时,FMDB会将数据放在这个结果集中,然后再对这个结果集进行查询操作即可。
FMResultSet *rs = [db executeQuery:@"SELECT * FROM Users"]; rs = [db executeQuery:@"SELECT * FROM Users WHERE Age = ?", @"25"]; while ([rs next]){ NSLog(@"%@ %@", [rs stringForColumn:@"Name"], [rs stringForColumn:@"Age"]); } [rs close];