数据库-FMDB查询数据(swift)

  • 简单查询使用 : 查询所有数据,显示全部信息
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
       //查询方式01-查询所有数据,显示全部信息
        select_01()
       //查询方式02-查询所有数据,显示逐条信息
        select_02()
        
    }
    
  func select_01() -> Void {
        
        // 准备sql
        let sql = "SELECT * FROM T_Person"
        // 执行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:查询所有数据,显示逐条信息
    func select_02() -> Void {
 
        // 执行sql
        SQLManager.sharedTools.queue.inDatabase { (db) in

        let resultSet = db.executeQuery(sql, withArgumentsInArray: nil)

           // for in 循环遍历结果
            for i in 0..
数据库-FMDB查询数据(swift)_第1张图片
select_01.png

数据库-FMDB查询数据(swift)_第2张图片
select_02.png

SQLManager.swift:

// 数据库名称
private let dbName = "dataSources.db"
class SQLManager {

    // 全局访问点
    static let sharedTools: SQLManager = SQLManager()
    
    // 队列方式
    let queue: FMDatabaseQueue
    
    // 构造函数
    private init(){
        
        // 打开数据库
        
        // 获取路径
        let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent(dbName)

        // 队列方式
        queue = FMDatabaseQueue(path: path)
        
        // 创建表
        createTable()
        
        // 打印路径
        print(path)
    }
    
    // MARK: - 创建表
    private func createTable() -> Void {
        
        // 获取文件
        let file = NSBundle.mainBundle().pathForResource("db.sql", ofType: nil)!
        
        // 准备sql
        let sql = try! String(contentsOfFile: file)
        
        // 执行sql
        queue.inDatabase { (db) in
            
            let result = db.executeStatements(sql)
            
            if result {
                print("创建表成功")
            } else {
                print("创建表失败")
            }
        }
    }
}

创建表的SQL语句放在单独的文件db.sql中:

-- 创建个人表 --
CREATE TABLE IF NOT EXISTS "T_Person" (
    "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "name" TEXT,
    "age" INTEGER,
    "height" REAL
);

-- 创建图书表 --
CREATE TABLE IF NOT EXISTS "T_Book" (
    "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "bookName" TEXT
);

你可能感兴趣的:(数据库-FMDB查询数据(swift))