iOS · WCDB的使用
之前開發過的專案涉及到資料庫操作都是使用了FMDB或者CoreData,直到最近接觸到了使用WCDB的專案。茅舍頓開-資料儲存不用再像FMDB那樣每個業務都去些SQL語句了。當然CoreData大哥也是。但是WCDB是支援iOS、macOS、Android多平臺的移動資料庫框架!
WCDB的特性:
· 易用:WCDB支援一句程式碼即可將資料取出,並且組合成物件
· WINQ(WCDB語言整合查詢):通過WINQ,無需再寫SQL語句
· ORM(Object Relational Mapping):WCDB支援靈活、易用的ORM,可以便捷的定義表、索引、約束、並進行增刪改查操作。
· 高效:效能比FMDB好
· 完整:WCDB滿足了資料庫相關的各種使用場景
直接上重點,如何使用WCDB?
CocoaPods安裝WCDB:
target ‘yourProjectName' do
platform :ios, ‘8.0'
pod 'WCDB'
end
(注:WCDB中使用到了C,所以引用它的檔案字尾需要把.m改成.mm)
引入標頭檔案:
#import <WCDB/WCDB.h>
1、建立資料庫:
***.h
@interface WCBDManage : NSObject
+(instancetype)sharedManager;
@property (strong,nonatomic) WCTDatabase *dataBase;
@end
***.mm
#define kDataBaseFileName @“myWCDB.sqlite"
+(instancetype)sharedManager{
static WCBDManage *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[WCBDManage alloc] init];
});
return manager;
}
-(instancetype)init{
self = [super init];
if (self) {
[self createDataBase];
}
return self;
}
-(void)createDataBase{
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *dbPath = [documentPath stringByAppendingString:kDataBaseFileName];
self.dataBase = [[WCTDatabase alloc] initWithPath:dbPath];
}
@synthesize dataBase = _dataBase;
2、建立model,並對映到資料表中的欄位 (需要遵循 WCTTableCoding 協議)
***.h
#import <Foundation/Foundation.h>
#import <WCDB/WCDB.h>
@interface OrderDBTable : NSObject<WCTTableCoding>
@property (assign,nonatomic) NSInteger orderId;
@property (strong,nonatomic) NSString *orderTitle;
@property (strong,nonatomic) NSString *orderDescribe;
@property (assign,nonatomic) float price;
//需要繫結到表的欄位在這裡宣告,在.mm中繫結
WCDB_PROPERTY(orderId)
WCDB_PROPERTY(orderTitle)
WCDB_PROPERTY(orderDescribe)
WCDB_PROPERTY(price)
***.mm
@implementation OrderDBTable
WCDB_IMPLEMENTATION(OrderDBTable) //該巨集實現繫結到表
WCDB_SYNTHESIZE(OrderDBTable, orderId) //該巨集實現繫結到表的欄位
WCDB_SYNTHESIZE(OrderDBTable, orderTitle)
WCDB_SYNTHESIZE(OrderDBTable, orderDescribe)
WCDB_SYNTHESIZE(OrderDBTable, price)
// 約束巨集定義資料庫的主鍵
WCDB_PRIMARY(OrderDBTable, orderId)
// 定義資料庫的索引屬性,它直接定義createTime欄位為索引
// 同時 WCDB 會將表名 + "_index" 作為該索引的名稱
// WCDB_INDEX(OrderDBTable, "_index", createTime)
@end
3、建立表
#define kDataBaseName_orderTable @“kDataBaseName_orderTable"
//建立表
-(void)createOrderTable{
if (![[LuckyWCBDManage sharedManager].dataBase isTableExists:kDataBaseName_orderTable]) {
BOOL isCreate = [[LuckyWCBDManage sharedManager].dataBase createTableAndIndexesOfName:kDataBaseName_orderTable withClass:LuckyOrderDBTable.class];
}
}
4、資料操作
//增加一條資料
+(BOOL)insertObjectWithOrderModel:(OrderDBTable *)model{
BOOL success = [[WCBDManage sharedManager].dataBase insertObject:model into:kDataBaseName_orderTable];
return success;
}
//查詢某張表中所有資料
+(NSMutableArray *)searchAllData{
NSMutableArray *resultArr = [[NSMutableArray alloc] initWithCapacity:0];
WCTTable *table = [[WCBDManage sharedManager].dataBase getTableOfName:kDataBaseName_orderTable withClass:LuckyOrderDBTable.class];
NSArray<OrderDBTable *> *arr = [table getAllObjects];
[resultArr addObjectsFromArray:arr];
return resultArr;
}
相關文章
- wcdb使用筆記筆記
- 微信終端開源資料庫 WCDB – Swift 版本資料庫Swift
- iOS keyValue方法的使用iOS
- iOS動態庫的使用iOS
- iOS CocoaPods使用iOS
- Protocol Buffers 在 iOS 中的使用ProtocoliOS
- iOS 鑰匙串的基本使用iOS
- iOS開發之XLForm的使用iOSORM
- iOS中優雅的使用iconfontiOS
- iOS開發之使用Git的基本使用(二)iOSGit
- iOS開發之使用Git的基本使用(一)iOSGit
- iOS UIPickerView使用技巧iOSUIView
- IOS動畫使用iOS動畫
- iOS AutoLayout使用技巧iOS
- iOS開發Settings.bundle的使用iOS
- iOS RAC 的使用總結 (轉載)iOS
- 【iOS開發】iOS App的加固保護原理:使用ipaguard混淆加固iOSAPP
- iOS使用 xcconfig配置檔案的若干坑iOS
- iOS如何安全而又優雅的使用NSTimeriOS
- iOS逆向之四 FishHook的簡單使用iOSHook
- iOS block巢狀block中weakify的使用iOSBloC巢狀
- 關於iOS開發中copy的使用iOS
- iOS開發-UITabbarController的介紹與使用iOSUItabBarController
- iOS Swift 工程使用 TargetiOSSwift
- iOS 使用 NSCharacterSet encode URLiOS
- iOS Animation建立及使用iOS
- iOS簽名、iOS企業簽名、iOS超級簽名工具使用iOS
- iOS開發-WKWebView的介紹與基本使用iOSWebView
- iOS開發- UILabel的基本介紹與使用iOSUI
- ios加固,ios程式碼混淆,ios程式碼混淆工具, iOS原始碼混淆使用說明詳解iOS原始碼
- iOS Runtime介紹和使用iOS
- iOS 學習使用 Swift CodableiOSSwift
- iOS MQTT 簡單使用流程iOSMQQT
- Swift iOS : 使用Cartography佈局SwiftiOS
- Lottie-iOS使用心得iOS
- 使用podspec建立iOS外掛iOS
- iOS 封裝.framework 以及使用iOS封裝Framework
- iOS 12釋出前夕:85%蘋果使用者仍使用iOS 11系統iOS蘋果