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

iPhone開發中數據庫使用教程

移動開發 iOS
本文主要介紹iphone中關于數據庫的使用,由于第一個iPhone程序就使用到了數據庫,所以首先來說下iPhone數據庫的使用。

iPhone開發中數據庫使用是本文要介紹的內容,iPhone使用的是sqlite數據庫,我用了firefox的插件Sqlite Manager來管理sqlite,這個插件很好用,可以很方便的進行視圖化的創建以及管理sqlite。廢話不多說,進入正題。

要使用sqlite首先要在Frameworks中引入libsqlite3.0.dylib這個文件,具體步驟我就略過了,然后創建數據庫,建好后將數據庫添加到Resources目錄下(記得勾選Copy items into ...這個選項),現在準備工作都已經做好,下面進入代碼編寫。

為了方便使用,以及以后的維護,我在這里創建了一個類將數據庫的相關代碼進行了封裝。創建一個NSObject類,我在這里取名為GADatabase,然后在實現文件中添加以下代碼:

  1. #import <sqlite3.h> 
  2.  
  3. id getColValue(sqlite3_stmt *stmt,int iCol) {  
  4.     int type = sqlite3_column_type(stmt, iCol);  
  5.     switch (type) {  
  6.         case SQLITE_INTEGER:  
  7.             return [NSNumber numberWithInt:sqlite3_column_int(stmt, iCol)];  
  8.             break;  
  9.         case SQLITE_FLOAT:  
  10.             return [NSNumber numberWithDouble:sqlite3_column_double(stmt, iCol)];  
  11.             break;  
  12.         case SQLITE_TEXT:  
  13.             return [NSString stringWithUTF8String:sqlite3_column_text(stmt, iCol)];  
  14.             break;  
  15.         case SQLITE_BLOB:  
  16.             return [NSData dataWithBytes:sqlite3_column_blob(stmt, iCol) length:sqlite3_column_bytes(stmt, iCol)];  
  17.             break;  
  18.         case SQLITE_NULL:  
  19.             return @"";  
  20.             break;  
  21.         default:  
  22.             return @"NONE";  
  23.             break;  
  24.     }  

在這里,我使用了C風格的定義,并且定義在了@implementation之外以方便使用,有了這個函數在以后的數據提取時很方便,其中的數據類型可根據實際情況進行增減。OK,現在在@implementation與@end之間添加下面的代碼以獲取iphone中sqlite的地址:

  1. + (NSString *)pathForDatabase {  
  2.     NSArray *arrayOfPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  3.     NSString *path = [arrayOfPaths objectAtIndex:0];  
  4.     path = [path stringByAppendingPathComponent:@"yourDatabaseName.sqlite"];  
  5.     NSLog(path);  
  6.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  7.     if(![fileManager fileExistsAtPath:path]){  
  8.         NSString *databaseSource = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"yourDatabaseName.sqlite"];  
  9.         if(![fileManager copyItemAtPath:databaseSource toPath:path error:nil]){  
  10.             return nil;  
  11.         }  
  12.     }  
  13.     return path;  

好了,現在可以寫sql語句了,我簡單舉幾個例子:

查詢某一個字段:

  1. - (NSString *)select:(NSString *)Parameter {  
  2.     sqlite3 *database;  
  3.     sqlite3_stmt *stm;  
  4.     NSString *result = [NSString string];  
  5.     NSString *sql = [NSString stringWithFormat:@"SELECT columnName FROM table WHERE columnName='%@'", Parameter];  
  6.      
  7.     if(sqlite3_open([[GADatabase pathForDatabase] UTF8String], &database) == SQLITE_OK) {  
  8.         if(sqlite3_prepare_v2(database, [sql UTF8String], -1, &stm, NULL) == SQLITE_OK) {  
  9.             if(sqlite3_step(stm) == SQLITE_ROW) {  
  10.                 result = getColValue(stm, 0);  
  11.             }  
  12.         }  
  13.         sqlite3_finalize(stm);  
  14.     }  
  15.     sqlite3_close(database);  
  16.     return result;  

若查詢多字段,可以用一個數組并結合一個自定義類來存儲,例:

  1. - (NSMutableArray *)selectUsers {  
  2.     sqlite3 *database;  
  3.     sqlite3_stmt *stm;  
  4.     NSMutableArray *result = [[NSMutableArray alloc] init];  
  5.     NSString *sql = @"SELECT * FROM users";  
  6.      
  7.     if(sqlite3_open([[GADatabase pathForDatabase] UTF8String], &database) == SQLITE_OK) {  
  8.         if(sqlite3_prepare_v2(database, [sql UTF8String], -1, &stm, NULL) == SQLITE_OK) {  
  9.             while(sqlite3_step(stm) == SQLITE_ROW) {  
  10.                 GAData *userObj = [[GAData alloc] init];  
  11.                 userObj.rId = getColValue(stm, 0);  
  12.                 userObj.userName = getColValue(stm, 1);  
  13.                 userObj.passWord = getColValue(stm, 2);  
  14.                 [result addObject:userObj];  
  15.                 [userObj release];  
  16.             }  
  17.         }  
  18.         sqlite3_finalize(stm);  
  19.     }  
  20.     sqlite3_close(database);  
  21.     return result;     

GAData的類定義如下:

  1. #import <Foundation/Foundation.h> 
  2. @interface GAData : NSObject {  
  3.     NSNumber *rId;  
  4.     NSString *userName;  
  5.     NSString *passWord;  
  6. }  
  7. @property(nonatomic, retain)NSNumber *rId;  
  8. @property(nonatomic, retain)NSString *userName;  
  9. @property(nonatomic, retain)NSString *passWord;  
  10. @end  
  11. #import "GAData.h"  
  12. @implementation GAData  
  13. @synthesize rId;  
  14. @synthesize userName;  
  15. @synthesize passWord;  
  16. @end 

向數據庫添加數據:

  1. - (void)addUser:(GAData *)addUserObj {  
  2.     sqlite3 *database;  
  3.     NSString *sql = [NSString stringWithFormat:@"INSERT INTO users (userName, passWord) VALUES('%@','%@')",  
  4.                      addUserObj.userName, addUserObj.passWord];  
  5.      
  6.     int status = sqlite3_open([[GADatabase pathForDatabase] UTF8String], &database);  
  7.     if(status != SQLITE_OK) {  
  8.         return;  
  9.     }  
  10.     status = sqlite3_exec(database, [sql UTF8String], 0, 0, NULL);  
  11.     if(status != SQLITE_OK) {  
  12.         return;  
  13.     }  
  14.     sqlite3_close(database);  

刪除,修改與添加類似,無非是sql語句的不同,就不再舉例了,下面我再說下sqlite中的時間函數,由于目前為止我還只用到了關于計算天數的函數,所以其他的我就不介紹了,大家可以在網上搜索一下,看下面這條sql語句:

  1. SELECT columnName FROM table WHERE (julianday(date(columnName))-julianday(date('now')))>10 

julianday()這個函數會返回一個天數,從格林威治時間公元前4714年11月24號開始算起。date()函數返回一個以“YYYY-MM-DD”為格式的日期。因此上面那條語句也就不難理解了。

關于數據庫方面的我就暫時寫這么多了,有不夠好的地方或者錯誤的地方歡迎大家指出來,大家一起學習嘛。最后,我再提醒一句,如果修改了Resources目錄下的數據庫內容,需要將原先編譯好的程序刪除掉,重新編譯,或者找到程序運行時的路徑,刪掉Documents文件夾下的數據庫文件,再重新編譯運行,只有這樣,你程序中的數據庫才會更新,切記!

小結:iPhone開發中數據庫使用教程的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-02 16:16:08

iPhone開發 SQLite 數據庫

2011-07-21 15:05:14

iPhone 數據庫

2011-07-27 10:16:41

iPhone SQLite 數據庫

2011-08-11 17:00:33

iPhone數據庫SQLite

2011-08-05 16:10:31

iPhone 網絡 NSURLConne

2011-07-07 16:42:38

iPhone Sqlite3 數據庫

2013-03-27 09:47:01

Android開發SQAndroid SDK

2011-08-02 16:43:26

iPhone開發 Ssqlite3 數據庫

2011-08-10 15:48:10

iPhone網絡

2011-03-21 13:53:45

數據庫開發書寫規范

2011-08-15 13:44:07

iPhone開發UITableView

2011-08-22 10:31:40

iPhone開發BSD Socket

2011-08-02 17:37:01

IPhone開發 環境搭建

2011-07-08 16:02:24

iphone

2011-08-10 18:24:22

iPhone 圖形 繪圖

2011-07-08 14:58:16

iPhone Xcode iOS

2011-08-30 12:59:52

Qt數據庫

2013-04-01 10:49:51

iOS開發sqlite數據庫

2009-06-24 13:07:44

Android數據庫

2011-03-24 16:46:44

微軟Excel數據庫
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久天堂| 久久一日本道色综合久久| 91麻豆精品国产91久久久久| 香蕉视频在线网址| 农村少妇久久久久久久| 久久九九99| 久久九九全国免费精品观看| 波多野结衣办公室双飞| 日本欧美一区| 一区二区三区久久| 欧美在线播放一区二区| 国产特黄一级片| 亚洲精品婷婷| www.亚洲男人天堂| 99久久国产精| 免费看日产一区二区三区| 福利视频第一区| 伊人久久大香线蕉av一区| 国精品人妻无码一区二区三区喝尿| 免费一级欧美片在线播放| 精品激情国产视频| 扒开jk护士狂揉免费| 精品国产18久久久久久二百| 欧美日韩国产在线播放| 五月天色婷婷综合| 久青草国产在线| 国产精品一级二级三级| 国产va免费精品高清在线| 欧美日韩在线观看成人| 欧美日韩国产传媒| 亚洲精品第一页| 超碰在线免费av| av在线一区不卡| 亚洲成在人线免费| 国内外成人激情免费视频| 国产免费av高清在线| 国产成人av福利| 国产日韩精品一区二区| 69国产精品视频免费观看| 欧美激情第10页| 日韩在线激情视频| 亚洲av熟女国产一区二区性色| 成人动漫视频| 日韩三级av在线播放| 亚洲精品视频导航| 性欧美18xxxhd| 午夜精品免费在线观看| 欧美亚洲愉拍一区二区| 国产精品久久久久久久久免费看| 国产一级在线观看视频| 综合天天久久| 久久精品国产69国产精品亚洲| 中文字幕网站在线观看| 蜜乳av综合| 亚洲久久久久久久久久| 99久久国产精| 亚州精品视频| 亚洲精品美女久久久| 欧美极品jizzhd欧美仙踪林| 亚洲成av人片在线观看www| 欧美一级二级三级乱码| 91丨porny丨九色| 2019中文亚洲字幕| 欧美精品高清视频| 午夜视频在线网站| 亚洲成人a级片| 欧美一区二区三区男人的天堂| 不卡中文字幕在线观看| 成人影院网站ww555久久精品| 777色狠狠一区二区三区| 亚洲第一色av| 视频在线亚洲| 亚洲国产精品视频在线观看 | 中文字幕第20页| 九九热精品视频在线观看| 亚洲人成在线观看| 性爱在线免费视频| 91成人精品| 欧美激情精品久久久久久黑人| 免费在线观看日韩| 亚洲午夜av| 欧美影院久久久| 奴色虐av一区二区三区| 久久99国产精品久久99| 91久久偷偷做嫩草影院| 日韩一级在线播放| 久久精品免视看| 亚洲在线欧美| 成人爽a毛片免费啪啪动漫| 五月综合激情婷婷六月色窝| 能看的毛片网站| 国内精品视频| 日韩精品在线视频美女| 国产精品suv一区二区88 | 综合网中文字幕| 二区三区四区视频| 亚洲成人中文| 国产精品视频中文字幕91| 国产色综合视频| 天堂在线资源8| 国产乱码字幕精品高清av| 成人黄色片在线| 国产91视频在线| 99精品偷自拍| 一区二区精品视频| 国产不卡123| 欧美精品1区2区| 久久久国产精品无码| 欧美日韩在线网站| 欧美日本高清视频| 中文在线字幕免费观| 高清不卡在线观看av| 三级三级久久三级久久18| 四虎影院观看视频在线观看| 日韩欧美一区视频| 国产精品91av| 日韩精品一区二区三区免费观看| 欧美国产在线视频| 又污又黄的网站| 99国产精品久久久久久久久久| 亚洲综合首页| 成人午夜视屏| 精品国产123| 永久久久久久久| 日韩综合一区二区| 国内一区二区在线视频观看| 黄视频在线播放| 亚洲乱码日产精品bd| 嫩草av久久伊人妇女超级a| 懂色av一区二区| 亚洲欧洲色图| 精品丝袜一区二区三区| 久久精品黄色片| 免费在线观看精品| 欧美一区二区三区在线播放| 国产白丝在线观看| 欧美一区二区精品在线| 欧美一区二区三区观看| 老司机免费视频久久| 国产精品久久久一区二区三区| 老司机在线视频二区| 欧洲一区二区三区免费视频| 波多野结衣影院| 亚洲国产午夜| 97人人模人人爽人人少妇| 99青草视频在线播放视| 色播五月激情综合网| 亚洲少妇18p| 亚洲第一在线| 国产高清不卡av| 午夜dj在线观看高清视频完整版| 91精品综合久久久久久| 亚洲精品电影院| 蜜臀久久99精品久久久画质超高清 | 性欧美videoshd高清| 欧美日韩不卡视频| 亚洲欧美卡通动漫| 精品一区二区三区在线播放| 亚洲欧美日韩综合一区| 欧美爱爱视频| 精品激情国产视频| 国产99久一区二区三区a片| 亚洲欧洲国产专区| 国产黑丝在线视频| 亚洲图片在线| 精品欧美一区二区在线观看视频| 69国产精品视频免费观看| 成人在线视频播放| 精品日韩在线一区| 国产成人无码精品亚洲| 久久综合久久鬼色中文字| 一本色道无码道dvd在线观看| 国产欧美日韩在线观看视频| 国产精品久久久久久久久久小说 | 99久久亚洲一区二区三区青草| 成人黄色av片| 深夜福利久久| 成人精品一区二区三区| 岛国片av在线| 亚洲欧洲美洲在线综合| 在线观看视频中文字幕| 玉米视频成人免费看| 中文字幕天堂网| 日韩黄色免费电影| 二级片在线观看| 久久a爱视频| 国产精品欧美一区二区三区奶水| 男人影院在线观看| 精品久久久影院| 无码人妻精品一区二区| 日韩理论片一区二区| www男人天堂| 石原莉奈在线亚洲三区| www.亚洲一区二区| 欧美重口另类| 91在线网站视频| 亚洲天堂导航| 欧美乱人伦中文字幕在线| 日本成人一区| 日韩一区二区在线免费观看| 亚洲久久在线观看| 中文字幕日韩av资源站| 精品影片一区二区入口| 精品一区二区三区香蕉蜜桃 | 人成在线免费网站| 久久亚洲精品成人| 九色在线免费| 精品国产伦一区二区三区免费| 亚洲 欧美 日韩 在线| 有码一区二区三区| 成人黄色免费网址| 成人精品在线视频观看| jizz大全欧美jizzcom| 夜夜嗨一区二区三区| 国产福利片一区二区| 爽爽窝窝午夜精品一区二区| 亚洲一区二区三区视频| 91精品影视| 97高清免费视频| 最新国产露脸在线观看| 自拍亚洲一区欧美另类| 美丽的姑娘在线观看免费动漫| 日韩视频永久免费| 日韩中文字幕一区二区| 麻豆福利在线观看| 久久精品国产亚洲7777| 狠狠v欧美ⅴ日韩v亚洲v大胸| 精品免费国产一区二区三区四区| 亚洲天堂aaa| 欧美午夜视频在线观看| 日韩精品视频免费看| 一区二区三区在线高清| 任我爽在线视频| 久久精品视频一区| 国产ts丝袜人妖系列视频| 国产91精品精华液一区二区三区| 91精产国品一二三产区别沈先生| 日韩精品91亚洲二区在线观看| 日本a在线免费观看| 国内精品美女在线观看| 国产盗摄视频在线观看| 久久综合88| 亚洲永久激情精品| 久久精品国产99久久| 先锋影音亚洲资源| 精品视频黄色| 四虎一区二区| 97精品视频| 伊人色综合影院| 国产大片一区| 伊人久久婷婷色综合98网| 天天操综合网| 大片在线观看网站免费收看| 综合久久综合| 亚洲色欲久久久综合网东京热| 欧美日韩久久| 亚洲色成人www永久在线观看| 国产一区亚洲| 日韩视频在线视频| 亚洲自啪免费| 91激情视频在线| 免费精品视频在线| 一区二区久久精品| 国产精品一区一区三区| 自拍偷拍激情视频| 波多野结衣视频一区| 中文字幕av网址| 国产欧美精品日韩区二区麻豆天美| 91资源在线播放| ...av二区三区久久精品| 一区二区视频免费看| 亚洲国产精品久久久久婷婷884| 久久精品视频日本| 欧美视频第一页| 中文字幕第一页在线播放| 69堂成人精品免费视频| 亚洲精品久久久蜜桃动漫| 亚洲高清久久网| 九色在线视频| 久久久91精品国产| 欧美草逼视频| 国产成人精品久久二区二区| 国产精品诱惑| 国产精选在线观看91| 国内成人精品| 成人在线免费高清视频| 一本一道久久综合狠狠老精东影业| 亚洲国产高清自拍| 欧美黄色一级生活片| 精品一区二区三区中文字幕老牛| 久久精品日产第一区二区三区精品版| 九九在线精品| 日本a级片在线观看| 一区二区高清| 久热精品在线播放| 99这里只有精品| 成年人看的免费视频| 亚洲综合久久久| 波多野结衣啪啪| 日韩一级视频免费观看在线| 日韩成人黄色| 欧美大成色www永久网站婷| 成人性生交大片免费观看网站| 91久久国产综合久久91精品网站 | 亚洲精品在线二区| 久久婷婷综合色| www.欧美精品一二区| 五月婷婷六月香| 激情成人中文字幕| 国产精品久久久久久久久久久久久久久久久久 | 国产一区二区免费| av网址在线免费观看| 欧美最猛黑人xxxx黑人猛叫黄| 精品久久亚洲| 日本在线视频一区| 亚洲国产日本| 无码国产精品一区二区高潮| 国产日韩欧美激情| 国产主播在线观看| 91精品在线免费观看| 黄色美女网站在线观看| 性日韩欧美在线视频| 欧美日韩中出| 在线免费观看一区二区三区| 久久精品官网| 国产免费一区二区三区最新6| 亚洲女子a中天字幕| 中文在线字幕av| 亚洲性av在线| 亚洲日本天堂| 精品欧美一区二区精品久久| 欧美国产日本| 国产精欧美一区二区三区白种人| 久久久久国产精品厨房| 中文字幕一区二区三区精品| 日韩欧美三级在线| av毛片在线| 成人在线精品视频| 99久久综合| www.51色.com| 中文字幕日韩av资源站| 亚洲图片欧美在线| 一区二区日韩精品| 韩国成人在线| 四虎永久在线精品免费一区二区| 久久亚洲精选| 一区二区伦理片| 在线精品视频小说1| 国产视频第一区| 国产精品成人播放| 国产精品1000| 亚洲国产成人va在线观看天堂| 国产精品亚洲欧美在线播放| 色av吧综合网| 99综合久久| 亚洲爆乳无码精品aaa片蜜桃| 国产一区二区三区国产| 精品97人妻无码中文永久在线| 日韩一区二区免费视频| 麻豆av在线播放| 黑人巨大精品欧美一区二区小视频| 亚洲国内精品| av网站免费在线播放| 色欲综合视频天天天| 国产在线日本| 国产日韩换脸av一区在线观看| 99九九热只有国产精品| 天堂在线精品视频| 亚洲一二三区在线观看| 天堂视频中文在线| 国产精品草莓在线免费观看| 视频在线不卡免费观看| 日本黄色三级网站| 午夜国产不卡在线观看视频| 四季av日韩精品一区| 国产成人91久久精品| 色男人天堂综合再现| 51自拍视频在线观看| 亚洲国产精品影院| 精品欧美不卡一区二区在线观看| 国产精品日日做人人爱| 欧美激情1区| 中国美女乱淫免费看视频| 欧美日韩精品一区视频| 视频在线这里都是精品| 欧美lavv| 韩国三级中文字幕hd久久精品| 久久婷婷一区二区| 亚洲女人被黑人巨大进入al | 91免费视频国产| 亚洲精选在线| 国产精品视频在| 精品久久久久久久久久久院品网| 一区二区精品伦理...| 久久精品国产精品亚洲精品色| 成人精品视频网站| 中文字幕日韩三级| 国内成人精品视频| 色婷婷热久久| 偷拍女澡堂一区二区三区|