首先,将附件中的文件加入到项目中,并在头文件中加入以下代码:
- #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];