技术文章分类(180)

技术随笔(11)

swift对sqlite基本操作

首先声明,真的不容易,swift刚出来,网上基本上都没有资料,自己一步一步的摸索做出来的。

1,导入libsqlite3.dylib库,并且在你的swift objc Bridging-Header.h里import <sqlite3.h>

这里相当于,swift引用了一个objc库文件,需要使用混编技术,如果有不会的参照我上一篇博客,有讲到混编的技术。

2,打开或者创建sqlite(数据库名这里假设是DBNAME)

     let storeFilePath:NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)
        var doucumentsDirectiory:String = storeFilePath.objectAtIndex(0) as String
        var path:String = doucumentsDirectiory.stringByAppendingPathComponent(DBNAME)
        var file:NSFileManager = NSFileManager.defaultManager()
        if (file.fileExistsAtPath(path)){
            println("\(DBNAME)找到")
        }else{
            println("\(DBNAME)没有找到,则创建一个新的\(DBNAME)")
        }
        if sqlite3_open((path as NSString).UTF8String , &db) != SQLITE_OK{
            println("\(DBNAME)打开失败");
            return false
        }else{
            println("\(DBNAME)打开成功");
            return true
        }

打开数据库成功后才能进行后面的操作

3,查询表里的数据

        let sql:NSString = "select * from "+self.tableName
            var statement:COpaquePointer = nil
            if sqlite3_prepare_v2(self.db,sql.UTF8String,-1,&statement,nil) == SQLITE_OK{
                while sqlite3_step(statement) == SQLITE_ROW{
                    var value:UnsafePointer<CUnsignedChar> = sqlite3_column_text(statement,3)
                    var cstr = CString(value)
                    println(cstr)
                }
            }else{
                println("查询准备失败")
            }

 

  

posted @ 2014-07-02 15:59  坤哥MartinLi  阅读(857)  评论(0编辑  收藏  举报