AWSQLiteDB:在 Swift 中更簡單地操作 SQLite
AWSQLiteDB是libsqlite3在Swift中的一個簡單封裝。
安裝
Carthage
Carthage是一個去中心化的包管理工具。
安裝 Carthage
$ brew update $ brew install carthage
集成 AWSQLiteDB 到 iOS 項目
-
在項目中創建Cartfile文件,并添加下面內容
git "https://github.com/adow/AWSQLiteDB.git" >= 0.1.2
-
運行Carthage update, 獲取 AWSQLiteDB;
- 拖動Carthage/Build/iOS下面的AWSQLiteDB.framwork到項目Targets,General設置標簽的Linked Frameworks and Linraries中;
-
在Targes的Build Phases設置中,點擊+按鈕,添加New Run Script Phase來添加腳本:
/usr/local/bin/carthage copy-frameworks
同時在下面的Input Files中添加:
$(SRCROOT)/Carthage/Build/iOS/AWSQLiteDB.framework
Cocoapods
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'AWSQLiteDB', '~> 0.1.2'
手動安裝
通過 Git Submodule 集成
通過 Submodule 將 SecrecySwift 作為 Embedded Framework 添加到項目中。
- 首先確保項目已經在 git 倉庫中;
-
添加AWSQLiteDB作為 Submodule:
git submodule add https://github.com/adow/AWSQLiteDB.git
-
在 Xcode 中打開項目,將 AWSQLiteDB.xcodeproj 拖放到你的項目的根目錄下;
- 在你的項目下,選擇Targets,General中添加Embedded Binaries, 選擇AWSQLiteDB.framework, 確保Build Phases中的Link Binary with Libraries中有AWSQLiteDB.framework;
或者直接使用 AWSQLiteDB.swift
- 復制 AWSQLiteDB.swift 到項目中
- 在項目的Targets的Build Phases的Link Binary with Libraries中添加libsqlite3.0.tbd;
使用
打開數據庫
let cache_dir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] let db_filename = "\(cache_dir)/sql.db" let db = SQLiteDB(path: db_filename)
關閉數據庫
SQLiteDB 實例被釋放的時候會自動關閉數據庫
db.close()
打開單例的數據庫
let cache_dir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] let db_filename = "\(cache_dir)/sql.db" guard let _ = try? SQLiteDB.setupSharedDBPath(db_filename) else { return }
執行 Execute
創建表
var sql = "create table test (id INTEGER PRIMARY KEY AUTOINCREMENT, name CHAR(32) NOT NULL)" print("create table:\(SQLiteDB.sharedDB.execute(sql))")
Insert
sql = "insert into test (id,name) values (?,?)" var result = SQLiteDB.sharedDB.execute(sql, parameters:9, "adow") print("insert:\(result)")
update
sql = "update test set name=? where id =?" result = SQLiteDB.sharedDB.execute(sql, parameters: "reynold qin",9) print("update:\(result)")
查詢 Query
sql = "select * from test" let rows = SQLiteDB.sharedDB.query(sql) for r in rows { let id = r["id"]!.value!.integer! let name = r["name"]!.value!.string! print("\(id):\(name)") }
參考
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!