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("查询准备失败") }