轉載自 http://www.cnblogs.com/wendingding/p/3868893.html html
1、離線緩存ios
在項目開發中,一般都須要對數據進行離線緩存的處理,如新聞數據的離線緩存等。sql
說明:離線緩存通常都是把數據保存到項目的沙盒中。有如下幾種方式數據庫
(1)歸檔:NSCodeing、NSKeyedArchiver緩存
(2)偏好設置:NSUserDefaults數據結構
(3)Plist存儲:writeToFileapp
提示:上述三種方法都有一個致命的缺點,那就是都沒法存儲大批量的數據,有性能的問題。ide
舉例:使用歸檔性能
兩個問題:spa
(1)數據的存取都必須是完整的,要求寫入的時候要一次性寫入,讀取的時候要一次性所有讀取,這涉及到應用的性能問題。
(2)若是有1000條數據,此時要把第1001條數據存入,那麼須要把全部的數據取出來,把這條數據加上去以後,再存入。
說明:以上的三種技術不能處理大批量數據的存儲,大批量數據一般使用數據庫來進行存儲。
2、SQLite簡單介紹
1.ios中數據的存儲方式
(1)Plist(NSArray\NSDictionary)
(2)Preference(偏好設置\NSUserDefaults)
(3)NSCoding(NSKeyedArchiver\NSkeyedUnarchiver)
(4)SQLite3
(5)Core Data
說明:
3是版本號,是SQLite的第三個版本。
core Data是對SQLite的封裝,由於iOS中使用的SQLite是純C語言的。
2.SQLite
(1)什麼是SQLite?
答:SQLite是一款輕型的嵌入式數據庫,安卓和ios開發使用的都是SQLite數據庫
(2)特色(優勢)
答:1)它佔用資源很是的低,在嵌入式設備中,可能只須要幾百K的內存就夠了
2)它的處理速度比Mysql、PostgreSQL這兩款著名的數據庫都還快
(3)什麼是數據庫
答:數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫
(4)數據庫的分類
答:能夠分爲2大種類
關係型數據庫(主流)和對象型數據庫(直接把內存中的對象塞入到數據庫,對比關係型數據庫而言性能不能很好,效率不高)
(5)經常使用關係型數據庫有哪些?
答:PC端:Oracle、MySQL、SQL Server、Access、DB二、Sybase
嵌入式\移動客戶端:SQLite
(6)數據庫是如何存儲數據的?
答:數據庫的存儲結構和excel很像,以表(table)爲單位 。表由多個字段(列、屬性、column)組成,表裏面的每一行數據稱爲記錄
(7)數據庫存儲數據的步驟?
1)新建一張表(table)
2)添加多個字段(column,列,屬性)
3)添加多行記錄(row,record,每行存放多個字段對應的值)
3、Navicat
Navicat是一款著名的數據庫管理軟件,支持大部分主流數據庫(包括SQLite)
1.Navicat的安裝
(1)下載該軟件後,先打開該軟件
(2)把文件拖入到應用程序拷貝
(3)破解版,千萬不要打開app,先打開sn.app
(4)點擊patch,找到應用程序的路徑,點擊open.
(5)點擊Generate,生成註冊碼
(6)點擊activate,選擇文件,open
(7)退出sn,打開安裝文件,完成安裝
2.Navicat的使用
新建一個SQLite3數據庫
建立一個新的數據庫
設置數據庫保存的位置(新建一個文件夾):
起個名稱以後,保存
設置數據庫鏈接的名稱
完成以後,雙擊鏈接數據庫
注意:yangyong是鏈接名稱,不是數據庫,利用yangyong這個鏈接,鏈接了main數據庫。幾項依次是表、視圖、索引、觸發器、查詢。
新建一張表,設置字段名
保存,設置表名(建議以t開頭如下劃線隔開,以示區分,說明這是張表)