FMDB是一种数据缓存的第三方库
- 获取数据库文件的路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
fileName = [doc stringByAppendingPathComponent:@"downCourse.sqlite"];
- 创建表
FMDatabase *db = [FMDatabase databaseWithPath:fileName];
if ([db open]) {
// 创建表
BOOL result = [db executeUpdate:@"CREATE TABLE 't_down_course' ('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 'courseId' INTERGER, 'downPath' VARCHAR(255),'courseInfo' text)"];
if (result) {
NSLog(@"创建表成功");
} else {
[self showAlertWithMessage:@"创建表失败" completion:nil];
}
[db close];
} else {
[self showAlertWithMessage:@"打开数据库失败" completion:nil];
}
}
- 添加数据
if ([db open]) {
NSString *insertSql = @"insert into 't_down_course'(courseId,downpath,courseInfo) values(?,?,?)";
BOOL result = [db executeUpdate:insertSql,[NSString stringWithFormat:@"%d",count],fileName,json];
if (result) {
[self showAlertWithMessage:@"添加数据成功" completion:nil];
} else {
[self showAlertWithMessage:@"添加数据失败" completion:nil];
}
count ++;
[db close];
} else {
[self showAlertWithMessage:@"打开数据库失败" completion:nil];
}
- 查询表
FMDatabase *db = [FMDatabase databaseWithPath:fileName];
if ([db open]) {
NSString *selectSql = @"select * from t_down_course";
FMResultSet *rs = [db executeQuery:selectSql];
while ([rs next]) {
int course = [rs intForColumn:@"id"];
NSString *courseId = [rs stringForColumn:@"courseId"];
NSString *downPath = [rs stringForColumn:@"downPath"];
NSString *courseInfo = [rs stringForColumn:@"courseInfo"];
NSLog(@"course id = %d, courseId = %@, downPath = %@, courseInfo = %@",course,courseId,downPath,courseInfo);
NSMutableDictionary *dic = [self dictionaryWithJsonString:courseInfo];
NSLog(@"%@",dic);
}
[db close];
} else {
[self showAlertWithMessage:@"打开数据库失败" completion:nil];
}
- 更新数据
update
//update t_down_course - 删除数据
delete
delete from t_down_course - 删除表
drop
drop table t_down_course - 注意
每次操作数据时,判断一下是否打开了数据库