- 簡單查詢使用 : 查詢所有數(shù)據(jù),顯示全部信息
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//查詢方式01-查詢所有數(shù)據(jù),顯示全部信息
select_01()
//查詢方式02-查詢所有數(shù)據(jù),顯示逐條信息
select_02()
}
func select_01() -> Void {
// 準備sql
let sql = "SELECT * FROM T_Person"
// 執(zhí)行sql
SQLManager.sharedTools.queue.inDatabase { (db) in
let resultSet = db.executeQuery(sql, withArgumentsInArray: nil)
// 遍歷 resultSet: FMResultSet!
while resultSet.next() {
// 獲取名字
let name = resultSet.stringForColumn("name")
// 獲取年齡
let age = resultSet.intForColumn("age")
// 獲取身高
let height = resultSet.doubleForColumn("height")
print("名字:\(name),年齡:\(age),身高:\(height)")
print("==============分割線================")
}
}
}
// 查詢-02:查詢所有數(shù)據(jù),顯示逐條信息
func select_02() -> Void {
// 執(zhí)行sql
SQLManager.sharedTools.queue.inDatabase { (db) in
let resultSet = db.executeQuery(sql, withArgumentsInArray: nil)
// for in 循環(huán)遍歷結(jié)果
for i in 0..<resultSet.columnCount() {
// 根據(jù)列的索引取出鍵:類似于key
let key = resultSet.columnNameForIndex(i)
// 根據(jù)列的索引取出值:類似于value
let value = resultSet.objectForColumnIndex(i)
print("key:\(key) value:\(value)")
print("==============分割線================")
}
}
}
}

select_01.png

select_02.png
SQLManager.swift:
// 數(shù)據(jù)庫名稱
private let dbName = "dataSources.db"
class SQLManager {
// 全局訪問點
static let sharedTools: SQLManager = SQLManager()
// 隊列方式
let queue: FMDatabaseQueue
// 構(gòu)造函數(shù)
private init(){
// 打開數(shù)據(jù)庫
// 獲取路徑
let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent(dbName)
// 隊列方式
queue = FMDatabaseQueue(path: path)
// 創(chuàng)建表
createTable()
// 打印路徑
print(path)
}
// MARK: - 創(chuàng)建表
private func createTable() -> Void {
// 獲取文件
let file = NSBundle.mainBundle().pathForResource("db.sql", ofType: nil)!
// 準備sql
let sql = try! String(contentsOfFile: file)
// 執(zhí)行sql
queue.inDatabase { (db) in
let result = db.executeStatements(sql)
if result {
print("創(chuàng)建表成功")
} else {
print("創(chuàng)建表失敗")
}
}
}
}
創(chuàng)建表的SQL語句放在單獨的文件db.sql中:
-- 創(chuàng)建個人表 --
CREATE TABLE IF NOT EXISTS "T_Person" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"age" INTEGER,
"height" REAL
);
-- 創(chuàng)建圖書表 --
CREATE TABLE IF NOT EXISTS "T_Book" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"bookName" TEXT
);