数据库-FMDB创建表(swift)

  • 从github下载FMDB后,需要将
    FMDatabaseAdditionsVariadic.swift
    FMDatabaseVariadic.swift
    两个文件拷贝到fmdb-master/src/fmdb中
    然后将fmdb文件夹导入工程
01.png
02.png
  • FMDB是OC写的,还需要创建桥接文件,导入FMDB.h文件

  • 接下来创建一个SQLManager.swift类,专门用来执行数据库操作,也是为了防止与项目隔离开(这里创建时默认继承了NSObject,创建好后,删除基类,什么也不继承)

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

    // 全局访问点
    static let sharedTools: SQLManager = SQLManager()
    
    // 队列方式
    let queue: FMDatabaseQueue
    
    // 构造函数(不让外界访问,只通过全局访问点)
    private init(){
        
        // MARK: - 打开数据库
        
        // 获取路径
        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文件中,通过bundle加载文件再执行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
);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,622评论 4 61
  • 作者:Gabriel Theodoropoulos,原文链接,原文日期:2016-10-16译者:Cwift;校对...
    梁杰_numbbbbb阅读 6,083评论 2 6
  • 昨天给爸爸的信,被你看到了,你发微信给我:我每天都看你写的文字。 我当时好惊讶,还有喜悦,有种被全世界遗忘了,我还...
    阿布_771f阅读 2,839评论 1 2
  • 走路不能驼背要抬头挺胸 一天睡十个小时可以减肥 牛奶涂脸可以变白 痘痘用红霉素药膏 无论多晚睡都要洗臉刷牙 要勤洗...
    霞丫头i阅读 1,828评论 0 2
  • 有时候难免会有服务器代码和数据的迁移。数据的迁移建议删除不必要的日志等文件压缩,数据库的迁移就简单一些。如果有中转...
    biaoqianwo阅读 4,688评论 0 0

友情链接更多精彩内容