FMDB简单实现

来源:互联网 发布:c语言判断是否为质数 编辑:程序博客网 时间:2024/05/16 07:44

/*

*teleModel.h

*/


#import <Foundation/Foundation.h>

@interface teleModel : NSObject

@property(nonatomic,copy)NSString *tele_name;

@property(nonatomic,copy)NSString *tele_num;

@property(nonatomic,copy)NSString *tele_addr;

@property(nonatomic,copy)NSString *tele_remark;

@property(nonatomic,copy)NSData *tele_imageData;

@end


/*

*DatabaseManager.m

*/

#import "DatabaseManager.h"

#import "FMDatabase.h"

#import "teleModel.h"

@implementation DatabaseManager

{

    FMDatabase *db;


}

//单列

+(DatabaseManager *)sharedManager

{

    staticDatabaseManager *instance = nil;

    staticdispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        instance = [[DatabaseManageralloc]init];

    });

    return instance;

    

}

-(instancetype)init

{

    if (self = [superinit]) {

        

        //1, 创建数据库操作对象

        db = [FMDatabasedatabaseWithPath:[selfdbPath]];

        

        //打开数据库

        BOOL ret = [dbopen];

        NSLog(@"数据库打开:%@", ret ?@"成功" :@"失败");

        

        //2, 创建表

        BOOL ret2 = [selfcreateTable];

        NSLog(@"表创建:%@", ret2 ?@"成功" :@"失败");

    }

    returnself;

}

//创建表

-(BOOL)createTable

{

    NSString *sql =@"create table if not exists teles(id integer primary key autoincrement, tele_name text, tele_num text, tele_addr text, tele_remark text, tele_imageData blob)";

    

    return [dbexecuteUpdate:sql];

}

//数据库文件的存储路径

-(NSString *)dbPath

{

    NSString *path = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];

    NSLog(@"path:%@", path);

    

    return [pathstringByAppendingPathComponent:@"tele.db"];

}


//插入数据

-(BOOL)insertModels:(teleModel*)tele{

    NSString *sql =@"insert into teles(tele_name, tele_num, tele_addr, tele_remark, tele_imageData) values(?,?,?,?,?)";

    

    return [dbexecuteUpdate:sql, tele.tele_name, tele.tele_num, tele.tele_addr, tele.tele_remark, tele.tele_imageData];

}

//获取数据

-(NSArray*)getAllModels

{

    NSMutableArray *mArr = [NSMutableArraynew];

    

    NSString *sql =@"select * from teles";

    

    FMResultSet *set = [dbexecuteQuery:sql];

    

    while (set.next) {

        

        NSString *tele_name = [setstringForColumn:@"tele_name"];

        NSString *tele_num = [setstringForColumn:@"tele_num"];

        NSString *tele_addr = [setstringForColumn:@"tele_addr"];

        NSString *tele_remark = [setstringForColumn:@"tele_remark"];

        NSData *imageData = [setdataForColumn:@"tele_imageData"];

        

        //model

        teleModel *model = [[teleModelalloc] init];

        model.tele_name = tele_name;

        model.tele_num = tele_num;

        model.tele_addr = tele_addr;

        model.tele_remark = tele_remark;

        model.tele_imageData = imageData;

        

        [mArr addObject:model];

    }

    

    return mArr;

}

-(BOOL)deleModel:(teleModel *)tele

{

    NSString *sql =@"delete from teles where tele_name=?";

    

    BOOL ret = [dbexecuteUpdate:sql, tele.tele_name];

    

    if ( ret ) {

        NSLog(@"删除数据成功!");

    }

    else {

        NSLog(@"删除数据失败!");

    }


    returnYES;

}

@end

0 0
原创粉丝点击