DB1

分析从db大数据库

=========DataApi.h==========

#import <Foundation/Foundation.h>
#import "FMDB.h"
@interface DataApi : NSObject
@property(strong,nonatomic)FMDatabase * dataBase;//数据库
+(instancetype)sharedDataApi;
-(BOOL)insertDataToSzzwithName:(NSString*)name;
-(NSArray *)getAllData;
@end

=========DataApi.m==========

#import "DataApi.h"
@implementation DataApi
+(instancetype)sharedDataApi
{
    static DataApi * da;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        da=[[DataApi alloc]init];
        da.dataBase=[da dataBase];
    });
    return da;
}
//数据库get
-(FMDatabase *)dataBase
{
    if (!_dataBase) {
        _dataBase =[[FMDatabase alloc]initWithPath:[self documentPath]];
        [_dataBase open];
        if ([self creataTable]) {
            NSLog( @"数据库创建成功");
        }
    }
    return _dataBase;
}
-(BOOL)insertDataToSzzwithName:(NSString *)name
{
    if (![_dataBase open]) {
        [_dataBase open];
    }
    NSString * sql =@"insert into szz (name) values (:name)";
    NSDictionary * dic =@{@"name":name};
    return  [_dataBase executeUpdate:sql withParameterDictionary:dic];
}
-(NSArray*)getAllData
{
    if (![_dataBase open]) {
        [_dataBase open];
    }
    NSMutableArray * arr =[NSMutableArray new];
    NSString* sql =@"select * from szz";
    FMResultSet * result =[_dataBase executeQuery:sql];
    while ([result next]) {
        NSDictionary * dic =[NSDictionary dictionaryWithDictionary:[result resultDictionary]];
        [arr addObject:dic];
    }
    return arr;
}
-(NSString*)documentPath
{
    NSString* path =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
    return [path stringByAppendingPathComponent:@"szz.sqlite"];
}
-(BOOL)creataTable
{
    NSString* sql =@"create table if not exists szz(id integer primary key autoincrement,name text)";
    return [_dataBase executeUpdate:sql];
}
@end

你可能感兴趣的:(DB1)