专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构

使用 SQLiteManager 建立和打开数据库

  • SQLiteManager.swift 中添加 openDB 方法

      // 数据库句柄: COpaquePointer(含糊的指针)通常是一个结构体指针
      private var db: COpaquePointer = nil
    
      /**
      打开数据库 DB(DataBase)
      - parameter dbName: 数据库名称
      */
      func openDB(dbName: String) {
          // 获取沙盒路径
          let documentPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString
    
          // 获取数据库完整路径
          let path = documentPath.stringByAppendingPathComponent(dbName)
          print(path)
          /*
          参数:
              1.fileName: 数据库完整路径
              2.数据库句柄:
          返回值:
              Int
                  SQLITE_OK 表示打开数据库成功
    
          注意:
              1.如果数据库不存在,会创建数据库,再打开
              2.如果存在,直接打开
          */
    //        sqlite3_open(path.cStringUsingEncoding(NSUTF8StringEncoding)!, &db)
          if sqlite3_open(path, &db) != SQLITE_OK {
              print("打开数据库失败")
              return
          }
    
          print("打开数据库成功")
      }
    
代码小结
  • 建立数据库需要给定完整的数据库路径
  • sqlite3_open 函数会打开数据库,如果数据库不存在,会新建一个空的数据库,并且返回数据库指针(句柄)
  • 后续的所有数据库操作,都基于此 数据库句柄 进行

打开数据库

  • AppDelegate 中添加以下代码

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
      SQLiteManager.sharedManager.openDB("my.db")
    
      return true
    }
    
代码小结
  • SQLite 数据库是直接保存在沙盒中的一个文件,只有当前应用程序可以使用
  • 在移动端开发时,数据库通常是以 持久式 连接方式使用的
  • 所谓 持久式连接 指的是只做一次 打开数据库 的操作,永远不做 关闭 数据库的操作,从而可以提高数据库的访问效率

results matching ""

    No results matching ""