iOS开发使用数据库做缓存

1.首先建表:在SQCWorld这个项目中,需要的数据有首页展示和详细页数据,目前就这两个了。

2.首页展示的字段主要有:标题,图片,ID_main,创建时间;(ID_main的作用是筛选详细页的信息,作为外键)

3.详细页的字段主要有:文字,图片,ID_main,创建时间;

4.根据需要可以得出结论:建两个表,其实就是和parse的表一样了,呵呵。

5.第一步指定一个数据库路径:

#definePATH_OF_DOCUMENT[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0]

NSString*doc_two=PATH_OF_DOCUMENT;

NSString*path_two=[doc_twostringByAppendingPathComponent:

detail.sqlite];

self.dbPath_two=path_two;

6.第二步判断这个路径下有没有数据库,没有的话就创建,并且建表(在这里可以建多个表,但是路径是不会变的,刚才我弄错了,我还以为是一个路径一个表,结果错了)

if([fileManagerfileExistsAtPath:self.dbPath_two]==NO){

FMDatabase*dataBase=[FMDatabasedatabaseWithPath:self.dbPath_two];

if([dataBaseopen]){

NSString*sql=

CREATETABLEmain(idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,titleVARCHAR,imageVARCHAR,mainIDVARCHAR,createtimeVARCHAR);

BOOLresult=[dataBaseexecuteUpdate:sql];

if(!result){

NSLog(

createfailed);

}else{

NSLog(

succeedcreatetable);

}

NSString*sql_two=

CREATETABLEdetail(idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,descriptionVARCHAR,imageVARCHAR,mainIDVARCHAR);

BOOLresult_two=[dataBaseexecuteUpdate:sql_two];

if(!result_two){

NSLog(

createfailed);

}else{

NSLog(

succeecreatetable_two);

}

[dataBaseclose];

}else{

NSLog(

failedopendataBase);

}

}

6.模拟插入数据:由于需要缓存图片,而图片缓存我是这样做的,首先确定一个全局唯一的path,然后把图片的data写入到这个path里面就是writeToFile这个方法。而这个path就以main_id的形式来命名,id就是parse传过来的这条数据的唯一id。最后在数据库中插入数据的时候就把这个path插入即可,当读的时候就用imageWithContentsOfFile这个方法就行了。其它的文字数据就以对应的字段插入就去就好了。









































北京那家治白癜风治得好
北京白癜风网上医院



转载请注明:http://www.xcqg58.com/lsqy/1384.html