初学者 FMDB iOS 数据库、表创建

Posted

技术标签:

【中文标题】初学者 FMDB iOS 数据库、表创建【英文标题】:Beginner FMDB iOS Database, Table Creation 【发布时间】:2016-10-26 07:38:26 【问题描述】:

您将如何在 ios 应用程序中创建数据库文件?我在 Xcode (Swift) 中使用 FMDB,并且在这里创建了执行查询的函数:

func query()

    let DB = FMDatabase(path: dbFilePath as String)
    if DB.open()
    
        let querySQL = "SELECT * FROM SHOPS"
        let results:FMResultSet? = DB.executeQuery(querySQL, withArgumentsInArray: nil)
        print(querySQL)
        DB.close()
        print(results)
    
    else
    
        print("Error: \(DB.lastErrorMessage())")
    

我的创建数据库功能需要帮助,如 FMDB 文档中所述:创建一个 FMDatabase 时带有一个 SQLite 数据库文件的路径。此路径可以是以下三种之一: 文件系统路径。该文件不必存在于磁盘上。如果它不存在,它会为你创建。但是我在哪里可以获得数据库文件的文件路径?

我还有一个关于如何继续创建表功能的问题:

   func create()
    
    let createString = "CREATE TABLE Shops(id INT PRIMARY KEY NOT NULL, name char(255);)"
    

我是否使用 executeUpdate?如果对您来说不太耗时,请提供简洁明了的答案,因为我是初学者。提前致谢。

【问题讨论】:

【参考方案1】:

Xcode 8.0 Swift 3.0 版本

在您的 Appdelegate.swift 中复制以下代码

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
    
        // Override point for customization after application launch.
        Util.copyFile("<yourDatabaseName>.sqlite") 
        getDocDir()
        return true
    

func getDocDir() -> String
    
        print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])
        return NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
    

然后运行Xcode:快捷键:build (Cmd + B) -> Run(Cmd + R)

检查 Xcode 的控制台获取如下示例的路径:

示例图片:https://i.stack.imgur.com/xH0AV.png

复制路径:

/users//tooti/Library/Developer/CoreSimulator/Devices/..../data/Containers/Data/Application/.../Documents/

-> 打开 Finder-> 转到 -> 转到文件夹并粘贴从上面复制的路径

示例图片:https://i.stack.imgur.com/DmzH8.png

-> 然后单击 Enter。就这样完成了。你会发现一个 .sqlite 文件

您还可以使用 SQLite 管理器/Firefox 浏览器/DBManagerExtension 工具打开数据库文件。

【讨论】:

以上是关于初学者 FMDB iOS 数据库、表创建的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FMDB 中的两个表之间创建或稳定关系?

iOS开发--SQLite重要框架FMDB的使用

IOS小技巧——使用FMDB时如何把一个对像中的NSArray数组属性存到表中

iOS进阶_FMDB的简单使用

iOS-Senior19-FMDB第三方应用

ios sqlite fts 扩展“没有这样的模块 fts4”错误