继夫的玩弄H辣文的小说|女人与拘性猛交视频|精品欧美高清不卡高清|一起做亏亏的事情的视频|啦啦啦在线视频观看|望月直播下载ios版本|国产日韩欧美一区二区三区

從0開始弄一個面向OC數據庫–終結篇

從0開始弄一個面向OC數據庫–終結篇
前言
我們從0開始封了一個面向OC模型的數據庫就要結束了,開發工作其實在上一篇就做完了,之后做了一些小的優化以及代碼的調整來發布這篇文章,先看一下我們最終形態 。
我們支持的類型有:
所有的基本數據類型(int,float),NSNumber,NSArray,NSMutableArray,NSDictionary , NSMutableDictionary,UIImage,NSURL,UIColor,NSSet,NSRange,NSAttributedString,NSData,自定義模型,以及數組、字典、模型相互嵌套復制代碼
這篇文章,將全方位介紹我們數據庫–CWDB以及如何使用!
架構
類名作用.h需要遵守以及實現的協議方法(用戶).h、.m本庫操作數據庫的所有API(用戶).h、.m直接調用底層API的類.h、.m處理模型的工具類.h、.處理數據庫表的工具類
在使用前 , 我們先模擬一個對應的使用場景,要解決什么問題,這個場景也是我們demo中的演示代碼所展現的(你可以打開demo在目錄下找到它) 。
我們希望保存幾所學校的資料到數據庫 。
以上的層級關系有模型嵌套數組嵌套模型的場景、模型嵌套模型再嵌套數據再嵌套模型的場景也就模型直接嵌套模型的場景 。
然后我們使用工廠方法來快速構造各個模型jsp用什么數據庫好,用來搭建整個學校
學校的結構設定好了之后~我們用代碼構造一所所這樣的夢想學院 。。然后我們要使用我們的數據庫將學校的資料保存起來 。
How to use CWDB?
1、將CWDB拖進你的項目或者使用(pod ‘CWDB’, ‘~> 1.5.0’),給項目添加.0.tbd庫,需要存儲進數據庫的模型導入.h頭文件,然后遵守協議,實現下面這個方法返回對應的主鍵信息:
+ (NSString *)primaryKey { // 返回schoolId為主鍵 return @"schoolId";}復制代碼
2、為所欲為之為所欲為操作數據庫
// 使用工廠方法創建的shool模型CWSchool *school = [self cwSchoolWithID:9999 name:@"夢想學院"]; // 調用保存或者更新方法,uid為userId,對應數據庫的名字,targetId為目標ID,與數據庫表名相關,可以傳nil 。BOOL result = [CWSqliteModelTool insertOrUpdateModel:school uid:nil targetId:nil];復制代碼
為什么要設置兩個多余的參數uid與?為了迎合下面一些場景,如果你不,傳nil即可
關于數據庫升級以及數據庫遷移,假設我存在數據庫的數據為聊天記錄 , 里面有10個成員變量,有一天,業務的提升,我要在里面多加一個成員變量,如新增一個成員變量用來標記是否是撤回的消息,這個時候由于數據庫的表結構固定死了沒這個字段,插入數據肯定是失敗的,為了解決這個問題,我們將要進行數據庫升級jsp用什么數據庫好,并且要將之前的數據都保留下來 , 這個要怎么做呢?這里壓根不需要你思考這個問題,我作為一個負責任的男人 , 我很負責任的告訴你,假如你的模型新增加了1個2個10個成員變量,你只管加 , 加了之后只管調用上面的方法存,數據的升級以及遷移我們默認會幫你完成?。。?
// result內的元素為CWSchool的模型NSArray *result = [CWSqliteModelTool queryAllModels:[CWSchool class] uid:nil targetId:nil];復制代碼
查詢方法返回值是一個數組,這個數組里面的數據全部為的模型 , 因為我們承諾過,保存的時候是模型A,查詢出來的一定也是模型A 。
CWSchool *school = [self cwSchoolWithID:9999 name:@"夢想學院"];// 刪除school數據BOOL result = [CWSqliteModelTool deleteModel:school uid:nil targetId:nil];復制代碼
這個方法,會根據傳進來的模型的主鍵值去找到數據表里面的數據刪除 。
我們的功能基本都在這了,除了還有一些條件查詢與刪除沒寫在這里 。有人會問,數據庫不是增刪查改4個嗎?怎么你只有3個,我們也實現了改的操作,只是我們把這個操作和增合并成了一個方法,也就是這里的第一個方法,我們會根據主鍵來判斷數據庫內是否存在對應的數據,如果存在,我們則進行更新操作,不存在則插入數據 。
我們的演示代碼對數據庫操作提供了一個可視化的操作界面,大概是這樣子
當然插入的數據與查詢的數據是否對應從界面上是無法看出來的 , 你可以像我這樣打一個斷點查看:
關于CWDB的更多用法,請轉到:CWDB查看或者看代碼提供的API 。。如果有不能滿足你需求的場景或者有任何疑問,歡迎留言或者提issue,最終看在全校女同學的面子上 give me one star ?。?
如果你也想封裝一個有很多女同學的數據庫,但是沒有資料學的話 , 可以前往我之前文章的傳送門,每個功能的實現,我們都提供了非常詳細的講解:
從0開始弄一個面向OC數據庫(一)
從0開始弄一個面向OC數據庫(二)
從0開始弄一個面向OC數據庫(三)
從0開始弄一個面向OC數據庫(四)
從0開始弄一個面向OC數據庫(五)
【從0開始弄一個面向OC數據庫–終結篇】本文到此結束,希望對大家有所幫助 。