FMDBパッケージ使用、工具類作成

2811 ワード

//
//  DataBaseTool.h
//  TheDasBest
//
//  Created by  on 16/7/25.
//  Copyright © 2016 . All rights reserved.
//

#import 
#import "FMDB.h"
@interface DataBaseTool : NSObject
+(FMDatabase*)shareDataBase;
+(BOOL)openDataBase;
+(BOOL)closeDataBase;
@end
//
//  DataBaseTool.m
//  TheDasBest
//
//  Created by  on 16/7/25.
//  Copyright © 2016  . All rights reserved.
//

#import "DataBaseTool.h"
static FMDatabase*_db;
@implementation DataBaseTool
//       
+(FMDatabase*)shareDataBase
{
//    if ([self copyDBFile])
//    {
        if (_db==nil)
        {
            _db=[[FMDatabase alloc]initWithPath:[self getDBFilePath ]];
        }
        //    ,    
        [_db setShouldCacheStatements:YES];

//    }
//    else
//    {
//        NSAssert(NO, @"       ");
//    }
    return _db;
}

//    
+(NSString*)getDBFilePath
{
    NSString *documentPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *dbFilePath = [documentPath stringByAppendingPathComponent:@"cosmetics.sqlite"];
    NSLog(@"     :%@",dbFilePath);
    return dbFilePath;
}

//     
+(BOOL)openDataBase
{
    if ([_db open]==NO)
    {
        [_db close];
        NSAssert(NO, @"       !");
        
    }
    [_db setShouldCacheStatements:YES]
    ;
    return YES;
}
+(BOOL)closeDataBase
{
    if ([_db close]==NO)
    {
        NSAssert(NO, @"       ");
    }
    return  YES;
}
@end

//
//  groupDao.h
//  TheDasBest
//
//  Created by  on 16/7/25.
//  Copyright © 2016  . All rights reserved.
//

#import 

@interface groupDao : NSObject
+(NSArray*)queryAllGroup;//  

@end
//
//  groupDao.m
//  TheDasBest
//
//  Created by ** on 16/7/25.
//  Copyright © 2016 ** . All rights reserved.
//

#import "groupDao.h"
#import "DataBaseTool.h"
#import "groupTable.h"
@implementation groupDao
//       
+(NSArray*)queryAllGroup
{
    FMDatabase*db=[DataBaseTool shareDataBase];
    [DataBaseTool openDataBase];
    NSMutableArray *arr = [NSMutableArray array];

    if ([db tableExists:@"groupTable"])
    {
        //  
        FMResultSet*set=[db executeQuery:@"select *from groupTable"];
        while ([set next])
        {
            groupTable*model=[[groupTable alloc]init];
           // model.id=[set intForColumn:@"id"];
            model.name=[set stringForColumn:@"name"];
            model.kind=[set stringForColumn:@"kind"];
            model.number=[set intForColumn:@"number"];
            [arr addObject:model];
        }
    }
    [DataBaseTool closeDataBase];
    return arr;

}
@end