<一>、FMDB
1、创建数据库:
FMDatabase*db=[[FMDatabase alloc]initWithPath:path];
2、创建表格:
create table downLoadData(data text NOTNULL,URL text NOT NULL,time text NOT NULL,PRIMARY KEY(URL))
3、插入语句
[NSString stringWithFormat:@"replace into downLoadData(data,url,time) values('%@','%@','%@');",data,url,[DataConversionstringWithDate:[NSDate date] timeStringFormat:@"yyyyMMddHHmmss"]]
4、查询语句:
-(NSDictionary*)selectDownLoadDataWithURL:(NSString *)url
{
//去掉空格
NSArray *array=[urlcomponentsSeparatedByString:@" "];
NSString *string1;
for (int i=0; i
if (string1.length!=0) {
string1=[NSStringstringWithFormat:@"%@%@",string1,[array objectAtIndex:i]];
}
else{
string1=[array objectAtIndex:i];
}
}
//拼接成所需要的查询语句
NSString *sqlitStr=[NSStringstringWithFormat:@"select * from downLoadData where URL like'%@%%'",string1];
NSString *str=[sqlitStrsubstringToIndex:sqlitStr.length-2];
NSString *resultStr=[NSStringstringWithFormat:@"%@%@",str,@"%'"];
NSLog(@"%@---%@",url,resultStr);
//FMResultSet *res=[_dbexecuteQuery:@"select * from User whereUserPhoneNumber=?",phoneNumber];
FMResultSet *res=[_dbexecuteQuery:resultStr];
NSString *string=@"";
int i=0;
NSMutableDictionary*dict=[[NSMutableDictionary alloc]init];
while ([res next]) {
i++;
NSLog(@"----%@----%@----%@",[resstringForColumn:@"data"],[res stringForColumn:@"URL"],[resstringForColumn:@"time"]);
[dict setObject:[resstringForColumn:@"data"] forKey:@"data"];
[dict setObject:[res stringForColumn:@"URL"]forKey:@"URL"];
[dict setObject:[resstringForColumn:@"time"] forKey:@"time"];
}
return dict;
}
<二>、LKDBHelper,这个是网络上对于FMDB封装的一个三方库,本次使用是用于与AFNetworking的结合使用,在AFNetworking下载完成后,存储起来,然后下次进入的时候,直接从数据库中取出
1、需要新建一个model类,引入LKDBHelper.h头文件,并声明属性与一个加方法
@property(nonatomic,strong)NSString*URL;
@property(nonatomic,strong)NSString*time;
@property(nonatomic,strong)NSString*downLoadData;
+(NSString*)getCreateTableSQL;//可写可不写
2、新建的model类的.m文件中
//主键(可不写,默认一个rowid为主键)
+(NSString*)getPrimaryKey
{
return @"URL";
}
3、创表:可写可不写
LKDBHelper* globalHelper = [DownLoadDataModelgetUsingLKDBHelper];
4、组织好数据后保存到数据库:
DownLoadDataModel *model=[[DownLoadDataModel alloc]init];
model.URL=url;
model.downLoadData=base64String;
model.time=20160218111548
//保存进数据库
[model saveToDB];
5、查询:
[DownLoadDataModelsearchWithWhere:[NSString stringWithFormat:@"URL like '%@%%'",url]]
得到一个数组
DownLoadDataModel*model=[[DownLoadDataModel searchWithWhere:[NSStringstringWithFormat:@"URL like '%@%%'",url]] lastObject];
这样得到的model中就取出来了相应查找的数据
新建的model的.m文件中,
创表
+(NSString*)getCreateTableSQL
表名
+(NSString
*)getTableName
主键
+(NSString*)getTableName
初始化
+(LKDBHelper*)getUsingLKDBHelper
其中还有
//在类初始化的时候,能够定义列名,注意,主键名字不能变
+(void)initialize
///复合主键这个优先级最高
+(NSArray *)getPrimaryKeyUnionArray
LKDBHelper不需要自己写sqlit语句,但对继承与NSObject的model依赖性比较高,使用也简单
FMDB,使用复杂,需要写sqlit语句,不需要model
网友评论