通过Swift-iOS中的SQLite数据库导入和查询

Pan*_*s S 8 sqlite core-data ios swift

我正在制作一个使用5个不同表格的大型数据库的应用程序.我想将该数据库导入到应用程序包中,并能够通过表进行查询.用户不会编辑数据库,因此不需要添加和删除记录.

在应用程序中添加数据库的最佳方法是什么?

Rob*_*Rob 9

过程如下:

  1. 将数据库添加到捆绑包中.将其拖动到项目中时,可以选择将其添加到代表主应用程序的目标.或者,查看目标设置,单击"Build Phases"并确认数据库出现在"Copy Bundle Resources"列表中.

  2. 使用像FMDB这样的框架来简化您的生活.这是用Objective-C编写的,但在Swift中也很有用.你需要做的是:

    通过遵循这些步骤,您可以将Objective-C中开发的此框架用于您的Swift项目.

  3. 您现在可以使用FMDB框架编写Swift代码.例如,银行代码打开数据库,选择列x,y以及z从一个叫表test,看起来像:

    let path = NSBundle.mainBundle().pathForResource("test", ofType:"sqlite")
    
    let database = FMDatabase(path: path)
    
    if !database.open() {
        print("Unable to open database")
        return
    }
    
    if let rs = database.executeQuery("select * from test", withArgumentsInArray: nil) {
        while rs.next() {
            let x = rs.stringForColumn("x")
            let y = rs.stringForColumn("y")
            let z = rs.stringForColumn("z")
            print("x = \(x); y = \(y); z = \(z)")
        }
    } else {
        print("executeQuery failed: \(database.lastErrorMessage())")
    }
    
    database.close()
    
    Run Code Online (Sandbox Code Playgroud)