iOS開發 SQLite重要框架FMDB的使用

2022-05-10 13:16:58 字數 2095 閱讀 4895

什麼是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 ...