IOS開發:在Core Data中應用使用原生SQL功能
IOS開發應用中在Core Data里應用使用原生SQL功能是本文要介紹的內容,主要是來學習Core Data的應用以及數據庫的操作。蘋果在iPhone 3.0以后的sdk中提供了Core Data功能,對于普通的數據庫應用開發來說,大大提高了方便性。
新建Window Base Application的時候,選上下面的使用Core Data,模板就自動創建好了,在delegate文件里提供了使用Core Data存取數據的所有方法,在其它View Controller里面只要調用delegate里面的方法就可以了。而修改Data Model并基于該Model創建Entity定義也提供了可視化的操作,一旦定義了實例,只要在程序中new一個實例,給變量賦值,然后調用 delegate中的save方法就可以添加一條新的記錄了。這種方法對于長文本和時間等sql中比較難處理的字段尤其好用。而且在已保存的記錄中取列表 等操作也非常方便。(具體可以參考apple提供的Core Data入門教程)。
但是后來當我需要做匯總功能的時候,就完全傻掉了,雖然Core Data也提供了簡單的sum, avg等運算,但是對于ralationship下的sum卻完全找不到文檔,甚至論壇上也搜不到解決方案。難道要我取出list再一個個手動匯總?這樣 數據量多的時候效率低的不是一點。當然,這時候如果能直接使用sql語句來匯總,那就最簡單不過了??墒?,Core Data封裝的很完整,都不知道它把數據存到哪里去了,怎么辦?難道要用sqlite重寫整個程序,那已有添加和明細等功能就要做相當大的無謂的改動了。
今天終于找到了解決方案:Core Data本身就是基于sqlite的封裝,所以它的底層仍然是使用sqlite進行存儲數據的,而它使用的數據庫,就在delegate文件中。通常是程 序的Documents目錄下的以程序名為名字的sqlite文件。如果程序已經在模擬器中運行過,只要進入用戶目錄下的 Library/Application Support/iPhone Simulator/User/Applications/,這里是你所有模擬器中運行過的程序,找到你需要的那個,進去以后進入Documents目 錄,里面就是自動生成的sqlite數據庫文件。把它復制出來,用sqlite3命令直接查看數據庫結構就可以了。
默認情況下生成的數據表的名字就是你的Entity的名字,加上字母Z開頭,字段名也就是你定義的實例名字,同樣加上字母Z開頭,而主鍵就是個自增長的 int型。有了這個數據庫結構,在程序中添加libsqlite3.0.dylib的framework,然后就可以在程序中使用原生 sqlite3功能了。
有了方便的core data解決簡單的數據操作,再配合完全自定義的sqlite功能,現在可以隨心所欲的開發強大的數據庫應用了
小結:IOS開發應用中在Core Data里應用使用原生SQL功能的內容介紹完了,希望通過本文的學習能對你有所幫助!