91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swift版的SQLite幫助類怎么創建

發布時間:2021-12-29 14:43:34 來源:億速云 閱讀:125 作者:iii 欄目:數據庫

這篇文章主要講解了“Swift版的SQLite幫助類怎么創建”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Swift版的SQLite幫助類怎么創建”吧!

SQLiteHelper

創建SQLiteHelper類

///  SQLite數據庫處理幫助類
///
///  此類中封裝了關于SQLite數據庫處理的業務函數
class SQLiteHelper
{
    // 業務代碼...}

單例

private static let instance = SQLiteHelper()/// 單例  全局的數據訪問接口class var sharedInstance: SQLiteHelper
{return instance
}

全局變量

var db: COpaquePointer = nil

打開數據庫

///  打開數據庫//////  :param: dbName 數據庫名稱//////  :returns: 返回 是否打開成功func openDatabase(dbName: String) -> Bool
{let path = dbName.documentPath()
    println(path)return sqlite3_open(path, &db) == SQLITE_OK
}

創建示例數據表

///  創建 T_Department 和 T_Employee 表//////  :returns: 返回 是否創建成功func createTable() -> Bool
{
    let sql = "CREATE TABLE \n" +"IF NOT EXISTS T_Department (\n" +"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\n" +"DepartmentNo CHAR(10) NOT NULL DEFAULT '',\n" +"Name CHAR(50) NOT NULL DEFAULT '' \n" +"); \n" +"CREATE TABLE IF NOT EXISTS T_Employee ( \n" +"'id' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \n" +
        "'name' TEXT NOT NULL, \n" +
        "'age' INTEGER NOT NULL, \n" +
        "'department_id' INTEGER, \n" +
        "CONSTRAINT 'FK_DEP_ID' FOREIGN KEY ('department_id') REFERENCES 'T_Department' ('id') \n" +
    ");"
    // 返回結果
    return execSql(sql)
}

執行INSERT、UPDATE、DELETE 語句

///  執行INSERT、UPDATE、DELETE SQL語句//////  :param: sql SQL語句//////  :returns: 返回 是否執行成功func execSql(sql: String) -> Bool
{// 返回結果
   return sqlite3_exec(db, sql.cStringUsingEncoding(NSUTF8StringEncoding)!, nil, nil, nil) == ITE_OK
}

執行SQL語句 返回結果數量

///  執行SQL語句 返回結果數量//////  :param: sql SQL語句//////  :returns: 返回 結果func execCount(sql: String) -> Int
{let record = execRecordSet(sql)// 返回結果return (record[0] as! [AnyObject])[0] as! Int
}

執行返回單條記錄

///  執行返回單條記錄//////  :param: sql SQL語句//////  :returns: 返回 單條記錄func execRow(sql: String) -> [AnyObject]?
{let record = execRecordSet(sql)if record.count > 0{return (record[0] as! [AnyObject])
    }else{return nil
    }
}

執行 SQL 返回結果集合

///  執行 SQL 返回結果集合//////  :param: sql SQL語句//////  :returns: 返回 查詢的結果集func execRecordSet(sql: String) -> [AnyObject]
{var stmt: COpaquePointer = nilvar recordList = [AnyObject]()if sqlite3_prepare_v2(db, sql.cStringUsingEncoding(NSUTF8StringEncoding)!, -1, &stmt, nil) == TE_OK
    {while sqlite3_step(stmt) == SQLITE_ROW
        {
            recordList.append(singleData(stmt)!)
        }
    }// 釋放語句sqlite3_finalize(stmt)// 返回結果return recordList
}

執行一行數據

///  執行一行數據//////  :param: stmt 執行的語句//////  :returns: 返回一行數據數組func singleData(stmt: COpaquePointer) -> [AnyObject]?
{var result = [AnyObject]()// 返回該表的列數let count = sqlite3_column_count(stmt)//        #define SQLITE_INTEGER  1//        #define SQLITE_FLOAT    2//        #define SQLITE_BLOB     4//        #define SQLITE_NULL     5//        #ifdef SQLITE_TEXT//        # undef SQLITE_TEXT//        #else//        # define SQLITE_TEXT     3//        #endif//        #define SQLITE3_TEXT     3for index in 0..<count
    {let type = sqlite3_column_type(stmt, index)// 根據字段的類型,提取對應列的值switch type {case SQLITE_INTEGER:
            result.append(Int(sqlite3_column_int64(stmt, index)))case SQLITE_FLOAT:
            result.append(sqlite3_column_double(stmt, index))case SQLITE_NULL:
            result.append(NSNull())case SQLITE_TEXT:let rrrrr: UnsafePointer<UInt8> = sqlite3_column_text(stmt, index)let chars = UnsafePointer<CChar>(sqlite3_column_text(stmt, index))let str = String(CString: chars, encoding: NSUTF8StringEncoding)!
            result.append(str)case let type:
            println("不支持的類型 \(type)")
        }
    }// 返回結果return result
}

感謝各位的閱讀,以上就是“Swift版的SQLite幫助類怎么創建”的內容了,經過本文的學習后,相信大家對Swift版的SQLite幫助類怎么創建這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

红桥区| 涞水县| 澄迈县| 奉新县| 巍山| 巢湖市| 农安县| 罗源县| 封丘县| 凉城县| 蒙阴县| 嘉义县| 左权县| 光泽县| 宽甸| 托里县| 夹江县| 高邮市| 崇阳县| 孟连| 溆浦县| 武乡县| 阿拉善盟| 盘锦市| 桓台县| 普安县| 且末县| 宁晋县| 南投县| 马公市| 天峨县| 凤翔县| 竹山县| 涟水县| 乌苏市| 措美县| 武陟县| 金塔县| 新蔡县| 陵川县| 泰兴市|