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;
}