日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FMDB的介绍

發布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FMDB的介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

FMDB方法的介紹

?

1.首先我們需要創建一個FMDatabase實例:

+(FMDatabase*)DataBaseSigonInstance

{

????//數據庫初始化

????NSString?*homeDir =NSHomeDirectory();

????//NSLog(@"%@",homeDir);

NSString?*dbPath = [homeDirstringByAppendingPathComponent:@"Library/Caches/FMDatabaseDemo.db"];

????FMDatabase?*database = [FMDatabasedatabaseWithPath:dbPath];

????

???return?database;

}

?

2.接下來就是需要創建一個數據表了:

//打開數據庫

????FMDatabase?*db = [FMDataBasePathDataBaseSigonInstance];

????

???if?(!db.open)

????{

????????NSLog(@"fail to open database");

????????

???????return;

????}

????db.logsErrors?=YES;//開啟錯誤日志

????[db?executeUpdate:@"CREATE TABLE IF NOT EXISTS studentTable(name varchar,age integer,totalScore float)"];

????[dbclose];

3.添加數據:

FMDatabase?*db = [FMDataBasePathDataBaseSigonInstance];

???????if?(!db.open)

????????{

????????????NSLog(@"fail to open database");

????????????

???????????return;

????????}? ? ??

???????//獲得數據

????????student.name?= ((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG]).text;

????????student.age?= [((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG?+ 1]).textintValue];

????????student.totalScore?= [((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG?+ 2]).textfloatValue];? ? ? ?

????????db.logsErrors?=YES;

????????[db?executeUpdate:@"insert into studentTable(name,age,totalScore)values(?,?,?)",student.name,[NSNumbernumberWithInt:student.age],[NSNumbernumberWithFloat:student.totalScore]];//注意參數必須是對象

????????[dbclose];

4.刪除數據:

????FMDatabase?*db = [FMDataBasePathDataBaseSigonInstance];

???if?(!db.open)

????{

????????NSLog(@"fail to open!");

???????return;

????}

????db.logsErrors?=YES;

????NSString?*delDataSqlStr =@"delete from studentTable";

????[dbexecuteUpdate:delDataSqlStr];

????[dbclose];

?

5.修改數據:

?FMDatabase?*db = [FMDataBasePathDataBaseSigonInstance];

???if?(!db.open)

????{

????????NSLog(@"fail to open!");

???????return;

????}

????db.logsErrors?=YES;

????[db?executeUpdate:@"update studentTable set totalScore = 100"];

????[dbclose];

查詢數據:

?FMDatabase?*db = [FMDataBasePathDataBaseSigonInstance];

???if?(!db.open)

????{

????????NSLog(@"fail to open!");

???????return;

????}

? ? db.logsErrors?=YES;

? ? FMResultSet?*rs = [dbexecuteQuery:@"select * from studentTable"];

?????NSMutableArray?*studentArr = [[NSMutableArrayalloc]init];

???????while?([rsnext])

????{

????????NSMutableDictionary?*dic = [[NSMutableDictionaryalloc]init];

????????

????????[dic?setValue:[rsstringForColumn:@"name"]forKey:@"name"];

????????[dic?setValue:[NSNumbernumberWithInt:[rsintForColumn:@"age"]]forKey:@"age"];

????????[dic?setValue:[NSNumbernumberWithDouble:[rsdoubleForColumn:@"totalScore"]]forKey:@"totalScore"];??

????????[studentArraddObject:dic];

????????[dicrelease];

???? ? }

????

???for?(int?count = 0; count< [studentArrcount]; count++)

????{

???????NSLog(@"sudent:%@??age:%@??totalScore:%@",[[studentArrobjectAtIndex:count]objectForKey:@"name"],[[studentArrobjectAtIndex:count]objectForKey:@"age"],[[studentArrobjectAtIndex:count]objectForKey:@"totalScore"]);

????}

????

????[studentArrrelease];

????

????[dbclose];

?

?

上面的都是一些增刪改查的用法

?

下面我們再來看看FMDatabase 和?FMResultSet

?

FMDatabase:(主要用到這兩個)

- (BOOL)executeUpdate:(NSString*)sql, ...; ??這個是用于執行無結果的sql語句的

?

- (FMResultSet?*)executeQuery:(NSString*)sql, ...; ?這個是用于執行有結果的sql語句的

?

FMResultSet:

?

- (BOOL)next; 結果集的下一個

?

- (int)columnCount; 結果集的字段個數

?

- (int)intForColumn:(NSString*)columnName; 獲取整形字段的信息(下面的都是同理)

- (int)intForColumnIndex:(int)columnIdx;

?

- (long)longForColumn:(NSString*)columnName;

- (long)longForColumnIndex:(int)columnIdx;

?

- (longlongint)longLongIntForColumn:(NSString*)columnName;

- (longlongint)longLongIntForColumnIndex:(int)columnIdx;

?

- (unsignedlonglong?int)unsignedLongLongIntForColumn:(NSString*)columnName;

- (unsignedlonglong?int)unsignedLongLongIntForColumnIndex:(int)columnIdx;

?

- (BOOL)boolForColumn:(NSString*)columnName;

- (BOOL)boolForColumnIndex:(int)columnIdx;

?

- (double)doubleForColumn:(NSString*)columnName;

- (double)doubleForColumnIndex:(int)columnIdx;

?

- (NSString*)stringForColumn:(NSString*)columnName;

- (NSString*)stringForColumnIndex:(int)columnIdx;

?

- (NSDate*)dateForColumn:(NSString*)columnName;

- (NSDate*)dateForColumnIndex:(int)columnIdx;

?

- (NSData*)dataForColumn:(NSString*)columnName; 獲取二進制數據(圖片可以使用這個)

- (NSData*)dataForColumnIndex:(int)columnIdx;

轉載于:https://my.oschina.net/fadoudou/blog/704289

總結

以上是生活随笔為你收集整理的FMDB的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。