FMDB

static ShareData *fm = nil;

static FMDatabase *fmdb = nil;

@implementation ShareData

+(ShareData *)sharedata{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

fm = [[ShareData alloc]init];

[fm initDB];

});

return fm;

}

+(instancetype)allocWithZone:(struct _NSZone *)zone{

if (fm == nil ) {

fm = [super allocWithZone:zone];

}

return fm;

}

-(id)copy{

return self;

}

-(id)mutableCopy{

return self;

}

-(void)initDB{

NSString *docment = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

NSString *path = [docment stringByAppendingPathComponent:@"XH.sqlite"];

fmdb = [[FMDatabase alloc]initWithPath:path];

if ([fmdb open]) {

[fmdb executeUpdate:@"create table class (tagId integer primary key autoincrement, name text,age text,like text)"];

[fmdb close];

}else{

NSLog(@"数据表创建失败");

}

}

-(NSMutableArray *)Marr{

NSMutableArray *Arr = [NSMutableArray array];

[fmdb open];

FMResultSet *fmset = [[FMResultSet alloc]init];

fmset = [fmdb executeQuery:@"select * from class"];

while ([fmset next]) {

Data *d = [[Data alloc]init];

d.tabId = [fmset intForColumn:@"tagId"];

d.name = [fmset stringForColumn:@"name"];

d.age = [fmset stringForColumn:@"age"];

d.like = [fmset stringForColumn:@"like"];

[Arr addObject:d];

}

[fmdb close];

return Arr;

}

-(void)addData:(Data *)AddD{

BOOL isc = false;

NSArray *arr = [self Marr];

for (Data *d in arr) {

if ([d.name isEqualToString:AddD.name]&&[d.age isEqualToString:AddD.age]&&[d.like isEqualToString:AddD.like]) {

isc = true;

}

}

if (isc) {

NSLog(@"数据相同");

}else{

[fmdb open];

BOOL isb = [fmdb executeUpdate:@"insert into class values(null,?,?,?)",AddD.name,AddD.age,AddD.like];

if (isb) {

NSLog(@"添加成功");

}else{

NSLog(@"添加失败");

}

}

[fmdb close];

}

-(void)RemoveData:(Data*)deleteData{

[fmdb open];

NSString *sql = [NSString stringWithFormat:@"DELETE FROM class WHERE tagId =%ld",deleteData.tabId];

BOOL isb = [fmdb executeUpdate:sql];

if (isb) {

NSLog(@"删除成功");

}else{

NSLog(@"删除失败");

}

[fmdb close];

}

-(void)UpData:(Data *)Updata{

[fmdb open];

NSString *str = [NSString stringWithFormat:@"update class set name = '%@',age = '%@', like = '%@' where tagId = %ld",Updata.name,Updata.age,Updata.like,Updata.tabId];

BOOL isb = [fmdb executeUpdate:str];

if (isb) {

NSLog(@"修改成功");

}else{

NSLog(@"修改失败");

}

[fmdb close];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用cocoaPods配置第三方文件 第一步。打开终端 第二步。cd+文件夹 第三步。pod init 第四步。打开...
    不说谎的匹诺曹Y阅读 1,140评论 0 1
  • 1.CoreData 1.1 CoreData概述 1)Core data 是数据持久存储的最佳方式 2)Core...
    微春风阅读 3,885评论 0 10
  • iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite AP...
    Icec阅读 1,338评论 1 13
  • 一、FMDB基本使用 1、什么是FMDB? FMDB是一款简洁、易用的封装库。因此,在这里推荐使用第三方框架FMD...
    豆宝的老公阅读 10,335评论 1 14
  • 昨天下午快下班时又犯了一个错,又将代码手动更新到泉州环境了,重启后导致控制台登陆不上,价格获取失败,我都想抽我自己...
    mujun阅读 248评论 1 0