国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

swift3.0 創建sqlite數據庫步驟方法

2020-03-09 17:45:02
字體:
來源:轉載
供稿:網友

一,導入描述文件

1.

swift,sqlite,數據庫,swift創建sqlite

2,

.swift,sqlite,數據庫,swift創建sqlite

3,

swift,sqlite,數據庫,swift創建sqlite

二,寫橋接文件sqliteManager

1.文件里寫入

#import <sqlite3.h>就可以了

2.把橋接文件添加到編譯環境

swift,sqlite,數據庫,swift創建sqlite

三, 寫數據庫管理類(單例)

import UIKit  class sqliteManager: NSObject {   private static let manager: sqliteManager = sqliteManager()   //單例   class func shareManager() -> sqliteManager{     return manager   }   //數據庫對象   private var db:OpaquePointer? = nil   func openDB(sqliteName:String){     //0.拿到數據庫的路徑     let path = sqliteName.docDir()     print(path)     let cPath = path.cString(using: String.Encoding.utf8)     //1.需要代開的數據庫的路徑 c語言的字符串     //2.打開之后的數據庫對象(指針),以后所有的數據庫操作,都必須拿到這個指針才能進行相關操作     if sqlite3_open(cPath, &db) != SQLITE_OK{       print("數據庫打開失敗")       return      }     if creatTable(){       print("創建表成功")     }else{       print("創建表失敗")     }   }   private func creatTable() -> Bool   {     // 1.編寫SQL語句     // 建議: 在開發中編寫SQL語句, 如果語句過長, 不要寫在一行     // 開發技巧: 在做數據庫開發時, 如果遇到錯誤, 可以先將SQL打印出來, 拷貝到PC工具中驗證之后再進行調試     let sql = "CREATE TABLE IF NOT EXISTS T_Person( /n" +       "id INTEGER PRIMARY KEY AUTOINCREMENT, /n" +       "name TEXT, /n" +       "age INTEGER /n" +     "); /n"     //    print(sql)     // 2.執行SQL語句     return execSQL(sql: sql)   }   func execSQL(sql: String) -> Bool   {     // 0.將Swift字符串轉換為C語言字符串     let cSQL = sql.cString(using: String.Encoding.utf8)!          // 在SQLite3中, 除了查詢意外(創建/刪除/新增/更新)都使用同一個函數     /*      1. 已經打開的數據庫對象      2. 需要執行的SQL語句, C語言字符串      3. 執行SQL語句之后的回調, 一般傳nil      4. 是第三個參數的第一個參數, 一般傳nil      5. 錯誤信息, 一般傳nil      */     if sqlite3_exec(db, cSQL, nil, nil, nil) != SQLITE_OK     {       return false     }     return true   }   } 

四,在AppDelegate里調用openDB函數 創建數據庫

mport UIKit  @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {    var window: UIWindow?     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {     // Override point for customization after application launch.     sqliteManager.shareManager().openDB(sqliteName: "tergun.sqlite")     return true   } } 

運行結果

swift,sqlite,數據庫,swift創建sqlite

附件

工具類

// // String+Category.swift // DSWeibo // // Created by xiaomage on 15/9/10. // Copyright © 2015年 小碼哥. All rights reserved. //  import UIKit  extension String{   /**   將當前字符串拼接到cache目錄后面   */   func cacheDir() -> String{     let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last! as NSString     return path.appendingPathComponent((self as NSString).lastPathComponent)   }   /**   將當前字符串拼接到doc目錄后面   */   func docDir() -> String   {     let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last! as NSString     return path.appendingPathComponent((self as NSString).lastPathComponent)   }   /**   將當前字符串拼接到tmp目錄后面   */   func tmpDir() -> String   {     let path = NSTemporaryDirectory() as NSString     return path.appendingPathComponent((self as NSString).lastPathComponent)   } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 池州市| 水富县| 贡嘎县| 清涧县| 峡江县| 鸡泽县| 谢通门县| 澄城县| 义乌市| 凤城市| 务川| 云龙县| 手机| 黔西| 贵德县| 昌乐县| 淳化县| 武城县| 司法| 延边| 民县| 南汇区| 红桥区| 巨鹿县| 玉山县| 教育| 贡嘎县| 体育| 平顶山市| 侯马市| 华安县| 天门市| 白水县| 甘肃省| 商水县| 汝南县| 宁强县| 大港区| 融水| 敖汉旗| 平谷区|