sqlite使用

dao类

方法申明

//创建people表

+(BOOL)createTablefriend;

//向people表插入一条数据 ,方法带参数,需要将人的名字和年龄传过来

+(BOOL)insertIntofriendWithDic:(NSDictionary *)dictionary;

//查询最大的id号

+(int)selectMaxID;

//查询表中所有的人

+(NSMutableArray*)selectAllfriend;

//根据ID或者名字查找某一个人

+(friendModel*)selectFriendWithString:(NSString *)flagString stringTypeIsNameOrId:(BOOL)isName;

//根据用户的id,修改用户的 昵称和头像

+(void)updateFriendWithHeadUrl:(NSString *)headUrl withNick:(NSString *)aNick forFriendId:(NSString*)idString;

//根据用户的id,修改用户的昵称

+(void)updateFriendWithNick:(NSString*)aNick forFriendId:(NSString*)idString;

//根据用户的id,修改用户的备注

+(void)updateFriendWithRemark:(NSString*)aRemark forFriendId:(NSString*)idString;

//根据用户的id,修改用户的 头像

+(void)updateFriendWithHeadUrl:(NSString *)headUrl forFriendId:(NSString*)idString;

//根据id号删除一个人

+(BOOL)deleteForfriendID:(NSInteger)aID;

+(void)deleteAllResource;

方法实现

//创建people表

+(BOOL)createTablefriend

{

//1.获取数据对象

FMDatabase *db= [dataBaseTool shareDatabase];

//2.执行创建表的sql语句

BOOL rs=  [db executeUpdate:@”create table if not exists friend(id integer primary key autoincrement,city text,acountry text,province text,t_sign text,nickname text,headimgurl text,phone text,remarks_name text,recomment integer,member_id integer,relationship integer,sex integer,shown_photo integer,is_yanz integer)”];

//3.关闭数据库

[dataBaseTool closeDatabase];

if (rs==YES) {

NSLog(@”创建表成功”);

return YES;

}

return NO;

}

//向people表插入一条数据 ,方法带参数,需要将人的名字和年龄传过来

+(BOOL)insertIntofriendWithDic:(NSDictionary *)dictionary

{

FMDatabase *db =[dataBaseTool shareDatabase];

BOOL rs=  [db executeUpdate:@”insert into friend(city,acountry,province,t_sign,nickname,headimgurl,phone,remarks_name,recomment,member_id,relationship,sex,shown_photo,is_yanz)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)”,dictionary[@”city”],dictionary[@”country”],dictionary[@”province”],dictionary[@”t_sign”],dictionary[@”nickname”],dictionary[@”headimgurl”],dictionary[@”phone”],dictionary[@”remarks_name”],dictionary[@”recomment”],dictionary[@”member_id”],dictionary[@”relationship”],dictionary[@”sex”],dictionary[@”shown_photo”],dictionary[@”is_yanz”]];

[dataBaseTool closeDatabase];

if (rs==YES) {

NSLog(@”插入成功”);

return YES;

}

return NO;

}

//查询最大的id号

+(int)selectMaxID

{

FMDatabase *db =[dataBaseTool shareDatabase];

FMResultSet *set =[db executeQuery:@”select max(id) from friend”];

//结果集中肯定只有一条数据,可以不写while循环

[set next];

int max = [set intForColumn:@”max(id)”];

//关闭结果集

[set close];

//关闭数据库

[dataBaseTool closeDatabase];

return max;

}

//查询表中所有的人

+(NSMutableArray*)selectAllfriend

{

//获取数据库对象

FMDatabase *db =[dataBaseTool shareDatabase];

//执行查询的sql语句

FMResultSet *set =[db executeQuery:@”select * from friend”];

NSMutableArray *arr =[NSMutableArray arrayWithCapacity:0];

//从结果集中取数据

while ([set next]) {

// NSString *strr = [dataBaseTool filePath];

NSString *city = [[set stringForColumn:@”city”] length] > 0 ? [set stringForColumn:@”city”] : @””;

NSString *acountry = [[set stringForColumn:@”acountry”] length] > 0 ? [set stringForColumn:@”acountry”] : @””;

NSString *province = [[set stringForColumn:@”province”] length] > 0 ? [set stringForColumn:@”province”] : @””;

NSString *t_sign = [[set stringForColumn:@”t_sign”] length] > 0 ? [set stringForColumn:@”t_sign”] : @””;

NSString *nickname = [[set stringForColumn:@”nickname”] length] > 0 ? [set stringForColumn:@”nickname”] : @””;

NSString *headimgurl = [[set stringForColumn:@”headimgurl”] length] > 0 ? [set stringForColumn:@”headimgurl”] : @””;

NSString *phone = [[set stringForColumn:@”phone”] length] > 0 ? [set stringForColumn:@”phone”] : @””;

NSString *remarks_name = [[set stringForColumn:@”remarks_name”] length] > 0 ? [set stringForColumn:@”remarks_name”] : @””;

NSInteger recomment = [set intForColumn:@”recomment”];

NSInteger member_id = [set intForColumn:@”member_id”];

NSInteger relationship = [set intForColumn:@”relationship”];

NSInteger sex = [set intForColumn:@”sex”];

NSInteger shown_photo = [set intForColumn:@”shown_photo”];

NSInteger is_yanz = [set intForColumn:@”is_yanz”];

NSDictionary *tempDic = @{@”city”:city,@”country”:acountry,@”province”:province,@”t_sign”:t_sign,@”nickname”:nickname,@”headimgurl”:headimgurl,@”phone”:phone,@”remarks_name”:remarks_name,@”recomment”:@(recomment),@”member_id”:@(member_id),@”relationship”:@(relationship),@”sex”:@(sex),@”shown_photo”:@(shown_photo),@”is_yanz”:@(is_yanz)};

friendModel *friend = [[friendModel alloc] initWithDic:tempDic];

friend.fmdbID = [set intForColumn:@”id”];

[arr addObject:friend];

}

//关闭结果集

[set close];

//关闭数据库

[dataBaseTool closeDatabase];

return arr;

}

//根据ID或者名字查找某一个人

+(friendModel*)selectFriendWithString:(NSString *)flagString stringTypeIsNameOrId:(BOOL)isName

{

FMDatabase *db =[dataBaseTool shareDatabase];

FMResultSet *set = nil;

if (isName == YES)

{

set =[db executeQuery:@”select * from friend where nickname= ?”,flagString];

}else

{

set =[db executeQuery:@”select * from friend where member_id= ?”,flagString];

}

if ([set next])

{

NSString *city = [[set stringForColumn:@”city”] length] > 0 ? [set stringForColumn:@”city”] : @””;

NSString *acountry = [[set stringForColumn:@”acountry”] length] > 0 ? [set stringForColumn:@”acountry”] : @””;

NSString *province = [[set stringForColumn:@”province”] length] > 0 ? [set stringForColumn:@”province”] : @””;

NSString *t_sign = [[set stringForColumn:@”t_sign”] length] > 0 ? [set stringForColumn:@”t_sign”] : @””;

NSString *nickname = [[set stringForColumn:@”nickname”] length] > 0 ? [set stringForColumn:@”nickname”] : @””;

NSString *headimgurl = [[set stringForColumn:@”headimgurl”] length] > 0 ? [set stringForColumn:@”headimgurl”] : @””;

NSString *phone = [[set stringForColumn:@”phone”] length] > 0 ? [set stringForColumn:@”phone”] : @””;

NSString *remarks_name = [[set stringForColumn:@”remarks_name”] length] > 0 ? [set stringForColumn:@”remarks_name”] : @””;

NSInteger recomment = [set intForColumn:@”recomment”];

NSInteger member_id = [set intForColumn:@”member_id”];

NSInteger relationship = [set intForColumn:@”relationship”];

NSInteger sex = [set intForColumn:@”sex”];

NSInteger shown_photo = [set intForColumn:@”shown_photo”];

NSInteger is_yanz = [set intForColumn:@”is_yanz”];

NSDictionary *tempDic = @{@”city”:city,@”country”:acountry,@”province”:province,@”t_sign”:t_sign,@”nickname”:nickname,@”headimgurl”:headimgurl,@”phone”:phone,@”remarks_name”:remarks_name,@”recomment”:@(recomment),@”member_id”:@(member_id),@”relationship”:@(relationship),@”sex”:@(sex),@”shown_photo”:@(shown_photo),@”is_yanz”:@(is_yanz)};

friendModel *friend = [[friendModel alloc] initWithDic:tempDic];

friend.fmdbID = [set intForColumn:@”id”];

[set close];

[dataBaseTool closeDatabase];

return friend;

}else

{

[set close];

[dataBaseTool closeDatabase];

return nil;

}

}

//根据用户的id,修改用户的 昵称和头像

+(void)updateFriendWithHeadUrl:(NSString *)headUrl withNick:(NSString *)aNick forFriendId:(NSString*)idString

{

FMDatabase *db =[dataBaseTool shareDatabase];

BOOL firstOk = [db executeUpdate:@”update friend set headimgurl = ? where member_id =?”,headUrl,idString];

BOOL twoOk = [db executeUpdate:@”update friend set nickname = ? where member_id =?”,aNick,idString];

if (firstOk && twoOk)

{

NSLog(@”修改成功”);

}else{

NSLog(@”修改失败”);

}

[dataBaseTool closeDatabase];

}

//根据用户的id,修改用户的昵称

+(void)updateFriendWithNick:(NSString*)aNick forFriendId:(NSString*)idString

{

FMDatabase *db =[dataBaseTool shareDatabase];

[db executeUpdate:@”update friend set nickname = ? where member_id =?”,aNick,idString];

[dataBaseTool closeDatabase];

}

//根据用户的id,修改用户的备注

+(void)updateFriendWithRemark:(NSString*)aRemark forFriendId:(NSString*)idString

{

FMDatabase *db =[dataBaseTool shareDatabase];

[db executeUpdate:@”update friend set remarks_name = ? where member_id =?”,aRemark,idString];

[dataBaseTool closeDatabase];

}

//根据用户的id,修改用户的 头像

+(void)updateFriendWithHeadUrl:(NSString *)headUrl forFriendId:(NSString*)idString

{

FMDatabase *db =[dataBaseTool shareDatabase];

[db executeUpdate:@”update friend set headimgurl = ? where member_id =?”,headUrl,idString];

[dataBaseTool closeDatabase];

}

//根据id号删除一个人

+(BOOL)deleteForfriendID:(NSInteger)aID

{

FMDatabase *db =[dataBaseTool shareDatabase];

BOOL rs=  [db executeUpdate:@”delete from friend where member_id=?”,@(aID)];

[dataBaseTool closeDatabase];

if (rs==YES) {

NSLog(@”删除成功”);

return YES;

}

return NO;

}

+(void)deleteAllResource

{

FMDatabase *db =[dataBaseTool shareDatabase];

[db executeUpdate:@”delete from friend”];

[dataBaseTool closeDatabase];

}

Tool类

申明方法

//获取数据库对象

+(FMDatabase*)shareDatabase;

//打开数据库的方法

+(BOOL)openDatabase;

//关闭数据库的方法

+(BOOL)closeDatabase;

//获取数据库文件路径

+(NSString*)filePath;

实现方法

//写在花括号中的变量是实例变量,类方法中不能使用实例变量

//声明在方法之外的变量 才是全局变量。 全部变量的作用域是我们的整个工程。

//为了全局变量的数据安全性,我们用static修饰全局变量。限定该全局变量只能在当前文件中用

static  FMDatabase *_db=nil;

//获取FMDatabase对象,并且保证整个工程中只有这一个对象

+(FMDatabase*)shareDatabase{

//如果_db不存在,就创建一个,如果存在就直接返回

if (_db==nil) {

_db =[[FMDatabase alloc]initWithPath:[self filePath]];

}

//打开数据库  获取对象之后直接就打开,不用再手动调用打开数据库的代码了

[self openDatabase];

//设置缓冲  提供效率

[_db setShouldCacheStatements:YES];

return _db;

}

//打开数据库

+(BOOL)openDatabase{

if (![_db open]) { //打开失败

[_db close];

NSAssert(NO, @”数据库打开失败”);

return NO;

}

return YES;

}

//关闭数据库

+(BOOL)closeDatabase{

if (![_db close]) {

NSAssert(NO, @”数据库关闭失败”);

return NO;

}

return YES;

}

//数据库文件路径

+(NSString*)filePath{

return [NSHomeDirectory() stringByAppendingPathComponent:@”Documents/friend.sqlite”];

}

model类

申明

@property (nonatomic,strong)NSString *city;

@property (nonatomic,strong)NSString *acountry;

@property (nonatomic,strong)NSMutableArray *photos;

@property (nonatomic,strong)NSString *province;

@property (nonatomic,strong)NSString *t_sign;

@property (nonatomic,strong)NSString *nickname;

@property (nonatomic,strong)NSString *headimgurl;

@property (nonatomic,strong)NSString *phone;

@property (nonatomic,strong)NSString *remarks_name;

@property (nonatomic,assign)NSInteger recomment;

@property (nonatomic,assign)NSInteger member_id;

@property (nonatomic,assign)NSInteger relationship;

@property (nonatomic,assign)NSInteger sex;

@property (nonatomic,assign)NSInteger shown_photo;

@property (nonatomic,assign)NSInteger is_yanz;

@property (nonatomic,assign)NSInteger fmdbID;//数据库用

– (instancetype)initWithDic:(NSDictionary *)dic;

实现

– (instancetype)initWithDic:(NSDictionary *)dic

{

self = [super init];

if (self) {

self.city = dic[@”city”];

self.acountry = dic[@”country”];

self.province = dic[@”province”];

self.t_sign  = dic[@”t_sign”];

_nickname = dic[@”nickname”];

_headimgurl = dic[@”headimgurl”];

_phone = dic[@”phone”];

_remarks_name = dic[@”remarks_name”];

if ([dic.allKeys containsObject:@”photos”]) {

self.photos = [[NSMutableArray alloc] initWithArray:dic[@”photos”]];

}

_recomment = [dic[@”recomment”] integerValue];

_member_id = [dic[@”member_id”] integerValue];

self.relationship = [dic[@”relationship”] integerValue];

self.sex = [dic[@”sex”] integerValue];

self.shown_photo = [dic[@”shown_photo”] integerValue];

self.is_yanz = [dic[@”is_yanz”] integerValue];

}

return self;

}

    原文作者:雾霭天涯
    原文地址: https://www.jianshu.com/p/ade87aefdaf1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞