Swift版的SQLite帮助类怎么创建
这篇文章主要讲解了“Swift版的SQLite帮助类怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swift版的SQLite帮助类怎么创建”吧!
SQLiteHelper创建SQLiteHelper类///SQLite数据库处理帮助类//////此类中封装了关于SQLite数据库处理的业务函数classSQLiteHelper{//业务代码...}单例
privatestaticletinstance=SQLiteHelper()///单例全局的数据访问接口classvarsharedInstance:SQLiteHelper{returninstance}全局变量
vardb:COpaquePointer=nil打开数据库
///打开数据库//////:param:dbName数据库名称//////:returns:返回是否打开成功funcopenDatabase(dbName:String)->Bool{letpath=dbName.documentPath()println(path)returnsqlite3_open(path,&db)==SQLITE_OK}创建示例数据表
///创建T_Department和T_Employee表//////:returns:返回是否创建成功funccreateTable()->Bool{letsql="CREATETABLE\n"+"IFNOTEXISTST_Department(\n"+"idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,\n"+"DepartmentNoCHAR(10)NOTNULLDEFAULT'',\n"+"NameCHAR(50)NOTNULLDEFAULT''\n"+");\n"+"CREATETABLEIFNOTEXISTST_Employee(\n"+"'id'INTEGERNOTNULLPRIMARYKEYAUTOINCREMENT,\n"+"'name'TEXTNOTNULL,\n"+"'age'INTEGERNOTNULL,\n"+"'department_id'INTEGER,\n"+"CONSTRAINT'FK_DEP_ID'FOREIGNKEY('department_id')REFERENCES'T_Department'('id')\n"+");"//返回结果returnexecSql(sql)}执行INSERT、UPDATE、DELETE 语句
///执行INSERT、UPDATE、DELETESQL语句//////:param:sqlSQL语句//////:returns:返回是否执行成功funcexecSql(sql:String)->Bool{//返回结果returnsqlite3_exec(db,sql.cStringUsingEncoding(NSUTF8StringEncoding)!,nil,nil,nil)==ITE_OK}执行SQL语句 返回结果数量
///执行SQL语句返回结果数量//////:param:sqlSQL语句//////:returns:返回结果funcexecCount(sql:String)->Int{letrecord=execRecordSet(sql)//返回结果return(record[0]as![AnyObject])[0]as!Int}执行返回单条记录
///执行返回单条记录//////:param:sqlSQL语句//////:returns:返回单条记录funcexecRow(sql:String)->[AnyObject]?{letrecord=execRecordSet(sql)ifrecord.count>0{return(record[0]as![AnyObject])}else{returnnil}}执行 SQL 返回结果集合
///执行SQL返回结果集合//////:param:sqlSQL语句//////:returns:返回查询的结果集funcexecRecordSet(sql:String)->[AnyObject]{varstmt:COpaquePointer=nilvarrecordList=[AnyObject]()ifsqlite3_prepare_v2(db,sql.cStringUsingEncoding(NSUTF8StringEncoding)!,-1,&stmt,nil)==TE_OK{whilesqlite3_step(stmt)==SQLITE_ROW{recordList.append(singleData(stmt)!)}}//释放语句sqlite3_finalize(stmt)//返回结果returnrecordList}执行一行数据
///执行一行数据//////:param:stmt执行的语句//////:returns:返回一行数据数组funcsingleData(stmt:COpaquePointer)->[AnyObject]?{varresult=[AnyObject]()//返回该表的列数letcount=sqlite3_column_count(stmt)//#defineSQLITE_INTEGER1//#defineSQLITE_FLOAT2//#defineSQLITE_BLOB4//#defineSQLITE_NULL5//#ifdefSQLITE_TEXT//#undefSQLITE_TEXT//#else//#defineSQLITE_TEXT3//#endif//#defineSQLITE3_TEXT3forindexin0..<count{lettype=sqlite3_column_type(stmt,index)//根据字段的类型,提取对应列的值switchtype{caseSQLITE_INTEGER:result.append(Int(sqlite3_column_int64(stmt,index)))caseSQLITE_FLOAT:result.append(sqlite3_column_double(stmt,index))caseSQLITE_NULL:result.append(NSNull())caseSQLITE_TEXT:letrrrrr:UnsafePointer<UInt8>=sqlite3_column_text(stmt,index)letchars=UnsafePointer<CChar>(sqlite3_column_text(stmt,index))letstr=String(CString:chars,encoding:NSUTF8StringEncoding)!result.append(str)caselettype:println("不支持的类型\(type)")}}//返回结果returnresult}
感谢各位的阅读,以上就是“Swift版的SQLite帮助类怎么创建”的内容了,经过本文的学习后,相信大家对Swift版的SQLite帮助类怎么创建这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。