什麼是fmdb:
fmdb是乙個和ios的sqlite資料庫操作相關的第三方框架。主要把c語言運算元據庫的**用oc進行了封裝。使用者只需呼叫該框架的api就能用來建立並連線資料庫,建立表,查詢等。
為什麼要使用fmdb
1、輕量級,靈活。不消耗太多效能
2、fmdb將c語言的ios系統的sqlite資料庫的操作**用oc進行封裝,物件導向,容易理解和使用
3、提供了執行緒不安全的解決方案。
該框架有三個重要的類
1、fmdatabase
乙個fmdatabase物件就代表乙個單獨的sqlite資料庫,通過下面**新增乙個fmdatabase
首先宣告為物件
///建立乙個database的乙個全域性物件
var db : fmdatabase?
然後在opendb方法中初始化
func opendb(dbname : string)else
}
2、fmresultset
使用fmdatabase執行查詢後,得到結果集
3、fmdatabasequeue
用於解決執行緒不安全的類,避免每個執行緒建立乙個資料庫,導致資料庫冗餘。
下面是兩個重要的方法,用於執行sqlite語句,我們在插入資料和查詢資料的時候都需要使用到該方法。
///查詢資料
class func query() -> [[string : anyobject]]}})
///查詢到資料後將資料返回
return resultarray
}
下面這乙份**是fmbd的常見用法,我們使用fmdb框架來建立乙個本地資料庫,然後給該資料庫中插入一百條資料。然後執行查詢方法,來查詢我們需要用到的資料。
我們在viewcontroller中呼叫插入資料和查詢資料的方法。
import uikit
class viewcontroller: uiviewcontroller
func insert()
} func query()
}
下面這乙份**是乙個fmdbqueuemanager管理類,我們在管理類中opendb(可以理解為開啟資料庫),然後creattable建立乙個**。
import uikit
import fmdb
class fmdbqueuemanager: nsobject
func createtable () )
}}
下面是fmdb模型類的**,我們需要給模型新增乙個屬性,就在該類中新增。模型類需要實現 setvaluesforkeyswithdictionary()方法,這一點和oc的用法有點像。除此之外,我們還需要有增加資料,刪除資料,新增資料,查詢資料的方法。我們將sqlite**寫在let sql = ""中,然後使用fmdb中的fmdbqueuemanager來執行sqlite**。所以使用fmdb框架我們可以更物件導向地來執行sqlite語句。
import uikit
class fmdbmodel: nsobject
override func setvalue(value: anyobject?, forundefinedkey key: string)
///給乙個插入
func insert())
} func delete())
} func update())
} ///查詢資料
class func query() -> [[string : anyobject]]}})
///查詢到資料後將資料返回
return resultarray
}}
上面是用swift語言來使用fmdb,使用oc來使用fmdb**邏輯跟上面相同。使用swift主要是最近開發中使用到了swift語言,而且swift在排名上已經和oc不想上下,按照趨勢,swift作為強語言替換掉oc弱語言應該是板上釘釘的事。如果swift入門了,使用起swift語言會比oc的**更簡單,邏輯也會更清晰。
下面是demo位址
demo位址
iOS開發 操作SQLite
sqlite,是一款輕型的資料庫 按照資料結構來組織 儲存和管理資料的倉庫 是遵守acid的關係型資料庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式裝置中,可能只需要幾百k的記憶體就夠了。開啟或建立資料庫 1 由於sqlite使用c語言寫的,...
iOS開發 MJExtension框架
一 mjextension框架介紹 我們在ios開發過程中,我們常常需要將字典資料 也就是json資料 與model模型之間的轉化,例如網路請求返回的微博資料 等等,如果我們自己全部手動去建立模型並賦值,都是一些毫無技術含量的 費時費力,而且還可能會賦值出錯,讓我們很頭疼。mjextension框架...
IOS開發之資料sqlite使用
一 引入工具包 引入工具包libsqlite3.dylib,該工具包為c語言工具包。二 運算元據庫 void connectdbelse 建立表 void createtable 插入資料操作 param name 姓名 param age 年齡 param tel void insertname ...