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
總結
- 上一篇: spark1.6.1 on yarn搭建
- 下一篇: java web判断服务器是否是本机