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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ocbase 数据库 蚂蚁_iOS开发数据库篇—FMDB简单介绍

發布時間:2023/12/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ocbase 数据库 蚂蚁_iOS开发数据库篇—FMDB简单介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS開發數據庫篇—FMDB簡單介紹

一、簡單說明

1.什么是FMDB

FMDB是iOS平臺的SQLite數據庫框架

FMDB以OC的方式封裝了SQLite的C語言API

2.FMDB的優點

使用起來更加面向對象,省去了很多麻煩、冗余的C語言代碼

對比蘋果自帶的Core Data框架,更加輕量級和靈活

提供了多線程安全的數據庫操作方法,有效地防止數據混亂

3.FMDB的github地址

https://github.com/ccgus/fmdb

二、核心類

FMDB有三個主要的類

(1)FMDatabase

一個FMDatabase對象就代表一個單獨的SQLite數據庫

用來執行SQL語句

(2)FMResultSet

使用FMDatabase執行查詢后的結果集

(3)FMDatabaseQueue

用于在多線程中執行多個查詢或更新,它是線程安全的

三、打開數據庫

通過指定SQLite數據庫文件路徑來創建FMDatabase對象

FMDatabase *db = [FMDatabase databaseWithPath:path];

if (![db open]) {

NSLog(@"數據庫打開失敗!");

}

文件路徑有三種情況

(1)具體文件路徑

如果不存在會自動創建

(2)空字符串@""

會在臨時目錄創建一個空的數據庫

當FMDatabase連接關閉時,數據庫文件也被刪除

(3)nil

會創建一個內存中臨時數據庫,當FMDatabase連接關閉時,數據庫會被銷毀

四、執行更新

在FMDB中,除查詢以外的所有操作,都稱為“更新”

create、drop、insert、update、delete等

使用executeUpdate:方法執行更新

- (BOOL)executeUpdate:(NSString*)sql, ...

- (BOOL)executeUpdateWithFormat:(NSString*)format, ...

- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments

示例

[db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]

五、執行查詢

查詢方法

- (FMResultSet *)executeQuery:(NSString*)sql, ...

- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...

- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments

示例

// 查詢數據

FMResultSet *rs = [db executeQuery:@"SELECT * FROM t_student"];

// 遍歷結果集

while ([rs next]) {

NSString *name = [rs stringForColumn:@"name"];

int age = [rs intForColumn:@"age"];

double score = [rs doubleForColumn:@"score"];

}

六、代碼示例

1.新建一個項目,導入libsqlite3庫,并在項目中包含主頭文件

2.下載第三方框架FMDB

3.示例代碼

YYViewController.m文件

1 //

2 //YYViewController.m3 //04-FMDB基本使用4 //

5 //Created by apple on 14-7-27.6 //Copyright (c) 2014年 wendingding. All rights reserved.7 //8

9 #import "YYViewController.h"

10 #import "FMDB.h"

11

12 @interfaceYYViewController ()13 @property(nonatomic,strong)FMDatabase *db;14 @end

15

16 @implementationYYViewController17

18 - (void)viewDidLoad19 {20 [super viewDidLoad];21 //1.獲得數據庫文件的路徑

22 NSString *doc=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];23 NSString *fileName=[doc stringByAppendingPathComponent:@"student.sqlite"];24

25 //2.獲得數據庫

26 FMDatabase *db=[FMDatabase databaseWithPath:fileName];27

28 //3.打開數據庫

29 if([db open]) {30 //4.創表

31 BOOL result=[db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);"];32 if(result) {33 NSLog(@"創表成功");34 }else

35 {36 NSLog(@"創表失敗");37 }38 }39 self.db=db;40

41 }42

43 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

44 {45 [self delete];46 [self insert];47 [self query];48 }49

50 //插入數據

51 -(void)insert52 {53 for (int i = 0; i<10; i++) {54 NSString *name = [NSString stringWithFormat:@"jack-%d", arc4random_uniform(100)];55 //executeUpdate : 不確定的參數用?來占位

56 [self.db executeUpdate:@"INSERT INTO t_student (name, age) VALUES (?, ?);", name, @(arc4random_uniform(40))];57 //[self.db executeUpdate:@"INSERT INTO t_student (name, age) VALUES (?, ?);" withArgumentsInArray:@[name, @(arc4random_uniform(40))]];58

59 //executeUpdateWithFormat : 不確定的參數用%@、%d等來占位60 //[self.db executeUpdateWithFormat:@"INSERT INTO t_student (name, age) VALUES (%@, %d);", name, arc4random_uniform(40)];

61 }62 }63

64 //刪除數據

65 -(void)delete66 {67 //[self.db executeUpdate:@"DELETE FROM t_student;"];

68 [self.db executeUpdate:@"DROP TABLE IF EXISTS t_student;"];69 [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);"];70 }71

72 //查詢

73 - (void)query74 {75 //1.執行查詢語句

76 FMResultSet *resultSet = [self.db executeQuery:@"SELECT * FROM t_student"];77

78 //2.遍歷結果

79 while([resultSet next]) {80 int ID = [resultSet intForColumn:@"id"];81 NSString *name = [resultSet stringForColumn:@"name"];82 int age = [resultSet intForColumn:@"age"];83 NSLog(@"%d %@ %d", ID, name, age);84 }85 }86

87 @end

打印查看結果:

提示:

如果ID設置為逐漸,且設置為自動增長的話,那么把表中的數據刪除后,重新插入新的數據,ID的編號不是從0開始,而是接著之前的ID進行編號。

注意:

不要寫成下面的形式,不要加'',直接使用%@,它會自動認為這是一個字符串。

總結

以上是生活随笔為你收集整理的ocbase 数据库 蚂蚁_iOS开发数据库篇—FMDB简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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