国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Swift使用FMDB操作SQLite

2019-11-14 19:28:20
字體:
來源:轉載
供稿:網友

  SQLite大家都懂的。本地數據庫,在移動設備上使用廣泛。IOS平臺上自然也少不了它。最近自己折騰一個小App的時候需要使用sqlite本地數據庫,上Github搜了下IOS下對SQLite的三方封裝有個星星很多的FMDB。不過是Obiect-C的庫,我是使用Swift的,本以為不能用了,不過后折騰了下發現在Swift下使用oc的庫非常簡單。下面我就介紹下如何在Swift下使用oc的FMDB庫。

  1.下載

  第一步自然是去下載FMDB了。https://github.com/ccgus/fmdb

  2.建立橋接

  把下載下來的zip解壓。打開項目文件夾,找到fmdb文件夾,把里面所有的文件選中,拖動到你的Swfit項目中。

 

  

  這時候XCode會自動提示你是否要建立橋接,選YES。XCode就會自動建立好oc到Swift的橋接了。

  

  接下來我們在Swift項目下找到一個叫做BabyLog-Bridging-Header的文件,打開編輯。在里面輸入:#import "FMDB.h"

  

  這樣我們FMDB到Swift的橋接頭就建好了。

  3.使用

  有了橋接頭,我們就可以歡快的使用FMDB了。下面給出CURD的簡單實例,不多說看代碼吧。

  獲取數據庫

  如果數據庫不存在則建立數據庫表,存在則返回數據庫對象。  

////  Db.swift//  BabyLog////  Created by mj.zhou on 15/3/4.//  Copyright (c) 2015年 mjstudio. All rights reserved.//import Foundationvar logs = [FeedLog]()class Db{        class func getDb()->FMDatabase{            let filemgr = NSFileManager.defaultManager()        let dirPaths =        NSSearchPathForDirectoriesInDomains(.DocumentDirectory,            .UserDomainMask, true)                let docsDir = dirPaths[0] as String                var databasePath = docsDir.stringByAppendingPathComponent("feedlog.db")                if !filemgr.fileExistsAtPath(databasePath) {                        let db = FMDatabase(path: databasePath)                        if db == nil {                PRintln("Error: /(db.lastErrorMessage())")            }                        if db.open() {                let sql_stmt = "CREATE TABLE IF NOT EXISTS FEEDLOGS (ID TEXT PRIMARY KEY, COUNT INTEGER, TYPE INTEGER,LOGTIME DATETIME,LOGDAY TEXT, REMARK TEXT)"                if !db.executeStatements(sql_stmt) {                    println("Error: /(db.lastErrorMessage())")                }                db.close()            } else {                println("Error: /(db.lastErrorMessage())")            }        }                let feedlogDb = FMDatabase(path: databasePath)        return feedlogDb    }    }

  插入數據

 class func insert(log:FeedLog){                let sql="INSERT INTO FEEDLOGS (ID,COUNT,TYPE,LOGTIME,LOGDAY,REMARK) "+"VALUES (?,?,?,?,?,?)"        let db = Db.getDb()        db.open()        db.executeUpdate(sql, withArgumentsInArray: [log.id,log.count,log.type,log.logTime,log.logDay,log.remark])        db.close()    }

  更新數據

    class func update(log:FeedLog){                let sql = "UPDATE FEEDLOGS SET COUNT=?,TYPE=?,LOGTIME=?,LOGDAY=?,REMARK=? WHERE ID=?"        let db = Db.getDb()        db.open()        db.executeUpdate(sql, withArgumentsInArray: [log.count,log.type,log.logTime,log.logDay,log.remark,log.id])        db.close()    }

  刪除數據

    class func remove(id:String){        let sql = "DELETE FROM FEEDLOGS WHERE ID = ?"        let db = Db.getDb()        db.open()        db.executeUpdate(sql, withArgumentsInArray: [id])        db.close()    }

    查詢數據

    class func select(id:String)->FeedLog?{                let sql = "SELECT * FROM FEEDLOGS WHERE ID = ?"        let db = Db.getDb()        db.open()        let rs = db.executeQuery(sql, withArgumentsInArray: [id])        var log:FeedLog?=FeedLog()        while rs.next() {            log?.id=rs.stringForColumn("ID")            log?.count=Int(rs.intForColumn("COUNT"))            log?.type=Int(rs.intForColumn("TYPE"))            log?.remark=rs.stringForColumn("REMARK")            log?.logTime=rs.dateForColumn("LOGTIME")            log?.logDay=rs.stringForColumn("LOGDAY")        }        db.close()                return log    }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁源县| 驻马店市| 浦东新区| 临桂县| 木兰县| 小金县| 通榆县| 嵩明县| 望都县| 天津市| 乌拉特后旗| 章丘市| 获嘉县| 沛县| 浦北县| 亳州市| 曲麻莱县| 东乌| 绥化市| 安化县| 江川县| 子长县| 福海县| 中江县| 道真| 平昌县| 吴忠市| 广东省| 广昌县| 淮滨县| 呼伦贝尔市| 嘉定区| 来宾市| 焉耆| 砚山县| 台湾省| 固阳县| 石柱| 高要市| 东阳市| 洞口县|