精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

解析IOS開發學習數據庫文檔之IOS數據庫封裝

移動開發 iOS
IOS開發學習數據庫文檔之IOS數據庫封裝是本文要介紹的內容,主要來學習IOS開發中數據庫的封裝,具體內容來看本文詳解。

IOS開發學習數據庫文檔之IOS數據庫封裝是本文要介紹的內容,主要來學習IOS開發中數據庫的封裝,具體內容來看本文詳解。內容不多,主要是以代碼來實現。

H文件

  1. #import <Foundation/Foundation.h> 
  2. #import "sqlite3.h"  
  3. @interface DatabaseOperation : NSObject {  
  4.     sqlite3 *m_sql;  
  5.     NSString *m_dbName;  
  6. }  
  7. @property(nonatomic)sqlite3*    m_sql;  
  8. @property(nonatomic,retain)NSString*    m_dbName;  
  9. -(id)initWithDbName:(NSString*)dbname;  
  10. -(BOOL)openOrCreateDatabase:(NSString*)DbName;  
  11. -(BOOL)createTable:(NSString*)sqlCreateTable;  
  12. -(void)closeDatabase;  
  13. -(BOOL)InsertTable:(NSString*)sqlInsert;  
  14. -(BOOL)UpdataTable:(NSString*)sqlUpdata;  
  15. -(NSArray*)querryTable:(NSString*)sqlQuerry;  
  16. -(NSArray*)querryTableByCallBack:(NSString*)sqlQuerry;  
  17. @end  
  18.  
  19. M文件  
  20.  
  21. #import "DatabaseOperation.h"  
  22. @implementation DatabaseOperation  
  23. @synthesize m_sql;  
  24. @synthesize m_dbName;  
  25. - (id) initWithDbName:(NSString*)dbname  
  26. {  
  27.     self = [super init];  
  28.     if (self != nil) {  
  29.        if ([self openOrCreateDatabase:dbname]) {  
  30.             [self closeDatabase];  
  31.         }  
  32.     }  
  33.     return self;  
  34. }  
  35. - (id) init  
  36. {  
  37.     NSAssert(0,@"Never Use this.Please Call Use initWithDbName:(NSString*)");  
  38.     return nil;  
  39. }  
  40. - (void) dealloc  
  41. {  
  42.     self.m_sql = nil;  
  43.     self.m_dbName =nil;  
  44.     [super dealloc];  
  45. }  
  46. //創建數據庫  
  47.  
  48. -(BOOL)openOrCreateDatabase:(NSString*)dbName  
  49. {  
  50.     self.m_dbName = dbName;  
  51.     NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);  
  52.     NSString *documentsDirectory = [path objectAtIndex:0];  
  53.     if(sqlite3_open([[documentsDirectorystringByAppendingPathComponent:dbName] UTF8String],&m_sql) !=SQLITE_OK)  
  54.     {  
  55.         NSLog(@"創建數據庫失敗");  
  56.         return    NO;  
  57.     }  
  58.     return YES;  
  59. }  
  60.  
  61. //創建表  
  62.  
  63. -(BOOL)createTable:(NSString*)sqlCreateTable  
  64. {  
  65.     if (![selfopenOrCreateDatabase:self.m_dbName]) {  
  66.         return NO;  
  67.     }  
  68.     char *errorMsg;  
  69.     if (sqlite3_exec (self.m_sql, [sqlCreateTable UTF8String],NULL, NULL, &errorMsg) != SQLITE_OK)  
  70.     {  
  71.         NSLog(@"創建數據表失敗:%s",errorMsg);  
  72.         return NO;  
  73.     }  
  74.     [selfcloseDatabase];  
  75.     return YES;  
  76. }  
  77. //關閉數據庫  
  78. -(void)closeDatabase  
  79. {  
  80.     sqlite3_close(self.m_sql);   
  81. }  
  82.  
  83. //insert  
  84.  
  85. -(BOOL)InsertTable:(NSString*)sqlInsert  
  86. {  
  87.     if (![selfopenOrCreateDatabase:self.m_dbName]) {  
  88.         return NO;  
  89.     }  
  90.    char* errorMsg = NULL;  
  91.     if(sqlite3_exec(self.m_sql, [sqlInsertUTF8String],0, NULL, &errorMsg) ==SQLITE_OK)  
  92. {  [selfcloseDatabase];  
  93. returnYES;}  
  94.     else {  
  95.         printf("更新表失敗:%s",errorMsg);  
  96.         [selfcloseDatabase];  
  97.         return NO;  
  98.     }  
  99.     return YES;  
  100. }  
  101. //updata  
  102.  
  103. -(BOOL)UpdataTable:(NSString*)sqlUpdata{  
  104. if (![selfopenOrCreateDatabase:self.m_dbName]) {  
  105.  return NO;  
  106.     }  
  107. char *errorMsg;  
  108. if (sqlite3_exec (self.m_sql, [sqlUpdata UTF8String],0, NULL, &errorMsg) !=SQLITE_OK)  
  109. {  
  110. [selfcloseDatabase];  
  111. returnYES;  
  112. }else {  
  113. returnNO;  
  114. }  
  115.  
  116. return YES;  
  117. }  
  118. //select  
  119. -(NSArray*)querryTable:(NSString*)sqlQuerry  
  120. {  
  121.     if (![selfopenOrCreateDatabase:self.m_dbName]) {  
  122.         return nil;  
  123.     }  
  124.     int row = 0;  
  125.     int column = 0;  
  126.     char*    errorMsg = NULL;  
  127.     char**    dbResult = NULL;  
  128.     NSMutableArray*    array = [[NSMutableArrayalloc] init];  
  129.     if(sqlite3_get_table(m_sql, [sqlQuerryUTF8String], &dbResult, &row,&column,&errorMsg ) == SQLITE_OK)  
  130.     {  
  131.        if (0 == row) {  
  132.             [self closeDatabase];  
  133.             return nil;  
  134.         }  
  135.         int index = column;  
  136.         for(int i =0; i < row ; i++ ) {    
  137.             NSMutableDictionary*    dic = [[NSMutableDictionaryalloc] init];  
  138.             for(int j =0 ; j < column; j++ ) {  
  139.                 if (dbResult[index]) {  
  140.                     NSString*    value = [[NSStringalloc] initWithUTF8String:dbResult[index]];  
  141.                     NSString*    key = [[NSStringalloc] initWithUTF8String:dbResult[j]];  
  142.                     [dic setObject:value forKey:key];  
  143.                     [value release];  
  144.                     [key release];  
  145.                 }  
  146.                 index ++;  
  147.             }   
  148.             [array addObject:dic];  
  149.             [dic release];  
  150.         }  
  151.     }else {  
  152.         printf("%s",errorMsg);  
  153.         [selfcloseDatabase];  
  154.         return nil;  
  155.     }  
  156.     [selfcloseDatabase];  
  157.     return [array autorelease];  
  158. }  
  159. //select  
  160.  
  161. int processData(void* arrayResult,int columnCount,char** columnValue,char** columnName)  
  162. {  
  163.     int i;   
  164.     NSMutableDictionary* dic = [[NSMutableDictionaryalloc] init];  
  165.     for( i = 0 ; i < columnCount; i ++ )   
  166.     {   
  167.        if (columnValue[i]) {  
  168.             NSString* key = [[NSStringalloc] initWithUTF8String:columnName[i]];  
  169.             NSString* value = [[NSStringalloc] initWithUTF8String:columnValue[i]];  
  170.             [dic setObject:value forKey:key];  
  171.         }  
  172.     }   
  173.     [(NSMutableArray*)arrayResult addObject:dic];  
  174.     [dic release];  
  175.     return 0;   
  176. }  
  177.  
  178. //select  
  179.  
  180. -(NSArray*)querryTableByCallBack:(NSString*)sqlQuerry  
  181. {  
  182.     if (![selfopenOrCreateDatabase:self.m_dbName]) {  
  183.         return nil;  
  184.     }  
  185.     char*    errorMsg = NULL;  
  186.     NSMutableArray* arrayResult = [[NSMutableArrayalloc] init];  
  187.     if (sqlite3_exec(self.m_sql,[sqlQuerryUTF8String],processData,(void*)arrayResult,&errorMsg) !=SQLITE_OK) {  
  188.         printf("查詢出錯:%s",errorMsg);  
  189.     }  
  190.     [selfcloseDatabase];  
  191.     return [arrayResult autorelease];  
  192. }  
  193. @end 

小結:解析IOS開發學習數據庫文檔之IOS數據庫封裝的內容介紹完了,希望通過本文的學習鞥對你有所幫助!

責任編輯:zhaolei 來源: CSDN博客
相關推薦

2011-08-22 15:43:08

IOS開發數據庫

2013-04-01 10:49:51

iOS開發sqlite數據庫

2011-08-25 11:08:21

Sybase數據庫

2011-08-02 15:04:49

2011-03-07 15:54:30

2011-05-13 13:54:02

數據庫文檔數據庫

2010-09-30 09:11:01

2021-09-06 10:24:12

鴻蒙HarmonyOS應用

2010-09-30 08:27:48

2015-10-22 10:52:34

NoSQL數據庫鍵值型數據庫文檔型數據庫

2021-09-03 15:41:00

鴻蒙HarmonyOS應用

2009-08-11 17:30:46

2010-05-13 14:14:45

2024-10-28 16:31:03

2011-07-27 08:56:32

Oracle數據庫綁定變量軟解析

2011-07-26 14:56:03

數據庫發展

2012-09-29 13:20:30

ASP.NETWeb框架

2021-05-24 09:08:50

數據庫工具技術

2011-09-23 09:09:38

數據庫遷移

2018-07-24 09:38:35

JavaMySQLJDBC
點贊
收藏

51CTO技術棧公眾號

欧美亚洲国产一区在线观看网站 | 精品国产乱子伦| 精品产国自在拍| 3atv一区二区三区| 成人免费aaa| 成人影欧美片| 久久精子c满五个校花| 亚洲综合av影视| 免费看污视频的网站| 亚洲国产精品成人| 亚洲人成伊人成综合网久久久| 毛片毛片毛片毛| 日本乱码一区二区三区不卡| 成人欧美一区二区三区白人| 精品欧美日韩在线| 国产www免费观看| 蜜臀a∨国产成人精品| 国语自产偷拍精品视频偷| 国产传媒视频在线| 一区二区三区韩国免费中文网站| 这里是久久伊人| 激情婷婷综合网| 国产www视频在线观看| 中文字幕精品一区二区三区精品| 国产伦精品一区二区三区视频免费 | 欧美一级做a爰片免费视频| 99精品在线观看| 日韩美女av在线| 国产女主播在线播放| 久久影视精品| 色哟哟在线观看一区二区三区| 亚洲一区 在线播放| 成人午夜电影在线观看| 99精品视频一区| 91超碰在线电影| 国产又黄又爽视频| 青青草精品视频| 日本一区二区在线播放| 日韩免费观看一区二区| 伊人成综合网| 久久这里有精品视频| 青青草自拍偷拍| 一本色道久久综合亚洲精品酒店 | 成人午夜在线观看| 最新中文字幕第一页| 国产人成精品一区二区三| 欧美日本国产在线| 欧美国产精品一二三| 影音先锋日韩在线| 久久精品中文字幕电影| 色综合久久久久综合| 精品欧美国产| 青青草免费在线| 久久综合一区二区| 精品久久久久久乱码天堂| 日本激情一区二区| 99re这里都是精品| 久久久亚洲综合网站| 日本一级在线观看| 久久新电视剧免费观看| 欧美精品欧美精品| 国产午夜视频在线观看| 国产日韩精品一区二区三区| 鲁丝片一区二区三区| 你懂的在线看| 亚洲国产精品二十页| 一区二区视频国产| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲精品成人精品456| 国产欧美日韩小视频| www成人免费观看| 一本色道久久综合亚洲91| 青青在线视频免费| 国产精品美女午夜爽爽| 欧美一区二区三区四区在线观看| 亚洲黄色小说在线观看| 欧美调教视频| 中文字幕久久久| tube国产麻豆| 亚洲精品乱码| 国产激情视频一区| 国产欧美一级片| av在线不卡网| 亚洲电影一二三区| 伊人电影在线观看| 欧美性猛交xxxx免费看| 国产精品区在线| 操欧美女人视频| 亚洲人成电影在线| 老湿机69福利| 精品av中文字幕在线毛片| 国产精品密蕾丝视频下载| 日韩在线视频免费观看高清中文| 婷婷色中文字幕| 久久国产99| 国产中文字幕亚洲| 无码国产精品一区二区色情男同| 国产欧美日韩精品一区| 蜜臀av性久久久久蜜臀av| www.色在线| 在线综合+亚洲+欧美中文字幕| 日本一区二区在线观看视频| 精品久久一区| 久久频这里精品99香蕉| 中文字幕无码乱码人妻日韩精品| 国产99久久久国产精品潘金 | 无吗不卡中文字幕| 国内国产精品天干天干| 久久精品亚洲成在人线av网址| 在线免费看av不卡| 国产成人无码精品亚洲| 国内精品在线播放| 日本一区二区三区免费观看| 欧美xxxx性xxxxx高清| 在线免费观看日韩欧美| 超碰caoprom| 91精品国产91久久久久久密臀 | 99re8这里有精品热视频免费| 一本久久综合亚洲鲁鲁| 日韩 欧美 综合| 国产精选一区二区三区| 亚洲国产精品综合| 成人欧美magnet| 亚洲成人亚洲激情| wwwav国产| 老司机午夜精品| 欧美中日韩免费视频| 黄色成人在线网| 日韩视频中午一区| 一级片一级片一级片| 日本午夜精品视频在线观看 | 日韩伦理视频| 日本亚洲欧美三级| 神马精品久久| 香港成人在线视频| 中文字幕无人区二| 夜间精品视频| 91久久久久久久久| 黄色免费在线观看| 67194成人在线观看| 国产三级短视频| 噜噜噜在线观看免费视频日韩| 好吊色欧美一区二区三区视频| 秋霞在线视频| 欧美一区二区国产| 欧美日韩在线视频免费播放| 国产一区二三区好的| 一区二区视频在线免费| 日本久久一区| 久久久国产精品x99av| 97超碰人人草| 亚洲视频一区二区在线观看| 红桃视频 国产| 999精品视频| 成人在线精品视频| 在线免费观看的av| 精品国精品国产尤物美女| 国产小视频在线观看免费| 懂色av一区二区夜夜嗨| 国产精品www在线观看| 国语一区二区三区| 欧美在线视频播放| 国产在线免费观看| 欧美欧美午夜aⅴ在线观看| 懂色av粉嫩av蜜臀av一区二区三区| 麻豆一区二区三| 午夜久久久久久久久久久| 超碰国产精品一区二页| 欧美精品一区二区三区国产精品| 高清一区二区三区四区| 天天综合日日夜夜精品| 蜜桃无码一区二区三区| 免费在线视频一区| 欧美一级特黄aaaaaa在线看片| 999在线精品| 欧美性受xxxx黑人猛交| youjizz在线播放| 欧美一区二区精品在线| 日本学生初尝黑人巨免费视频| 国产亚洲一区二区三区啪| av一二三不卡影片| 99精品一级欧美片免费播放| 一区二区三区四区视频免费观看| 性色av香蕉一区二区| 欧美精品久久久久久久久久丰满| 欧美日韩午夜在线| 精品人妻在线播放| 国产性天天综合网| 91丨porny丨九色| 亚洲一区成人| 中文字幕免费高| 日本福利一区| 成人免费直播live| 国产亚洲成av人片在线观看| 伊人久久久久久久久久久| 性网爆门事件集合av| 日韩欧美极品在线观看| 蜜臀av午夜精品久久| 久久综合一区二区| 少妇愉情理伦片bd| 日韩在线a电影| 久操手机在线视频| 欧美少妇xxxx| 精品国产中文字幕| 成人在线啊v| 国产成人中文字幕| 欧美黄色视屏| 深夜福利国产精品| 日韩欧美亚洲系列| 日韩精品一区二区三区在线 | 丰乳肥臀在线| 中文字幕精品在线视频| 亚州男人的天堂| 日韩午夜av一区| 亚洲网站在线免费观看| 黑人欧美xxxx| 国产无套粉嫩白浆内谢| 中文字幕在线不卡国产视频| 久久久无码人妻精品一区| 国产老肥熟一区二区三区| 狠狠热免费视频| 香蕉精品999视频一区二区| 久久综合亚洲精品| 国产精品传媒精东影业在线| 日韩欧美电影一区二区| 欧美理伦片在线播放| av免费精品一区二区三区| 国产a亚洲精品| 国产精品极品美女粉嫩高清在线| 精品丝袜在线| 久久乐国产精品| 羞羞视频在线免费国产| 久久久国产视频91| 日本在线视频网| 日韩一区二区av| 日本在线人成| 国产欧美精品一区aⅴ影院| 国产精品中文字幕久久久| av成人 com a| 性欧美xxxx交| a国产在线视频| 8090成年在线看片午夜| 欧美伦理91| 欧美一区二区三区……| 澳门成人av网| 国产精品激情av电影在线观看 | 国产精品免费一区二区三区在线观看 | 人人精品人人爱| 小泽玛利亚视频在线观看| 日本大胆欧美人术艺术动态| 欧美日韩大尺度| 免费在线看成人av| 国产精品久久久久久9999| 国产乱码字幕精品高清av | 欧美精品www| av漫画网站在线观看| 欧美在线视频免费播放| 日韩大片欧美大片| 国产精品美腿一区在线看| 久久69成人| 99久久精品免费看国产一区二区三区| 亚洲91网站| 久久久免费看| 波多野结衣一区| 在线视频不卡国产| 欧美日韩精品免费观看视频完整| 免费高清一区二区三区| 99视频一区| 日韩美一区二区三区| 国产成人在线观看网站| 色综合天天综合网天天看片| 波多野结衣一区二区在线| 欧美日韩日日摸| 亚洲乱熟女一区二区| 亚洲精品日韩久久久| 日本在线人成| 久久久亚洲精选| 欧美性片在线观看| 92裸体在线视频网站| 国产精品videossex| 日本不卡一区| 911精品美国片911久久久| 轻点好疼好大好爽视频| 亚洲一区区二区| 特黄视频免费观看| 丁香激情综合国产| 人妻aⅴ无码一区二区三区| 中文字幕中文字幕一区二区| 欧美日韩激情在线观看| 日韩欧美亚洲范冰冰与中字| 日韩乱码一区二区三区| 日韩欧美精品在线视频| 免费在线毛片| 欧美老少做受xxxx高潮| 不卡福利视频| 97超碰人人看人人| 日本精品三区| 日韩五码在线观看| 精品一区二区三区的国产在线播放| 动漫美女无遮挡免费| 国产精品色噜噜| 日韩av免费网址| 91精品在线一区二区| 欧洲亚洲精品视频| 欧美乱妇高清无乱码| av免费在线一区| 国产在线一区二区三区欧美| 欧美第十八页| 超碰97人人射妻| 粉嫩av一区二区三区在线播放| 国产一级淫片久久久片a级| 欧美日韩国产色| 成人av手机在线| 深夜福利亚洲导航| 色香欲www7777综合网| 精品高清视频| 欧美精品国产| 亚洲一级片免费观看| 欧美韩日一区二区三区| 亚洲精品午夜国产va久久成人| 精品欧美一区二区三区精品久久| 日本三级在线视频| 国产99久久久欧美黑人 | 免费观看亚洲| 国产一区二区不卡视频在线观看| 亚洲精品小说| 手机av在线网站| 综合欧美亚洲日本| 97国产精品久久久| 日韩亚洲第一页| 国产精品亲子伦av一区二区三区| 欧美日韩在线精品| 国产精品丝袜xxxxxxx| 国产不卡一二三| 亚洲福利电影网| 亚洲国产999| 欧美裸体男粗大视频在线观看| 亚洲日本免费电影| 国产又爽又黄ai换脸| 捆绑调教一区二区三区| 一级二级黄色片| 欧美日韩免费不卡视频一区二区三区 | 久久久久久久久久免费视频| 亚洲国产精品久久久久久| 欧美人体视频xxxxx| 国产精品欧美久久| 影音先锋久久精品| 中文字幕在线永久| 五月天久久比比资源色| 色视频在线观看免费| 欧美中文在线观看国产| 伊人春色精品| 天天操天天爱天天爽| 国产精品少妇自拍| 国产一区二区在线视频观看| 久久精品国产亚洲一区二区 | 日韩欧美国产午夜精品| 五月花成人网| 国产一区二区三区高清| 亚洲少妇一区| 日本成人免费视频| 欧美精品丝袜久久久中文字幕| 超碰人人在线| 国产亚洲欧美一区二区| 蜜桃av一区| 一本色道久久88| 欧美一区二区三区喷汁尤物| 黑人玩欧美人三根一起进| 免费一区二区三区| 毛片av一区二区| 国产在线一二区| 亚洲色图35p| 四虎国产精品免费久久5151| 大桥未久一区二区| 99在线精品免费| 国产美女www| 久久99久久99精品中文字幕 | 亚洲天堂av在线播放| 四虎影视精品永久在线观看| 国产一级片91| 久久久久久久久久久99999| 91精品在线视频观看| 国产做受69高潮| 久久亚洲专区| 中文字幕三级电影| 欧美性猛交xxxxxx富婆| 天堂va在线| 日韩亚洲视频在线| 国产91丝袜在线播放0| 日韩精品成人免费观看视频| www日韩欧美| 国产精品无码免费专区午夜| 久久精品一区二区三区四区| 99久久亚洲精品日本无码| 欧美性资源免费| 欧美一区二区| 欧美午夜激情影院| 亚洲成色777777女色窝| 国产精品久久久久久久久免费高清| av网站手机在线观看|