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这个方法就行了。其它的文字数据就以对应的字段插入就去就好了。
北京那家治白癜风治得好北京白癜风网上医院