iOS 好友请求列表数据库处理
2016-07-22 17:23
260 查看
//
// NewFriendsDBModel.h
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/7/7.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "FMDB.h"
#import "NewFriendModel.h"
@interface NewFriendsDBModel :
NSObject
@property (nonatomic,strong)
FMDatabase * dataBaseNew;
+(NewFriendsDBModel *) sharedInstance;
-(void)openDatabaseWithMemberId:(NSString *)memberId;
-(NSMutableDictionary*)loadAllNewFriendModel;
-(BOOL)addNewFriendsModel:(NewFriendModel *)model;
-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr;
-(void)updateNewFriendsModel:(NewFriendModel *)model;
-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId;
//删除好友请求
-(void)deleteNewFriendModel:(NSString *)memberId;
//- (void)deleteSession:(NSString*)sessionId;
// 查询本地数据库排序好的
-(NSArray *)getAllModelOrderArr;
@end
//
// NewFriendsDBModel.m
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/7/7.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import "NewFriendsDBModel.h"
#define NEWFRIENDSDB @"NewFriendsDB"
@implementation NewFriendsDBModel
+(NewFriendsDBModel *)sharedInstance{
static
NewFriendsDBModel * newFriDBManager;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
newFriDBManager = [[NewFriendsDBModel
alloc]init];
});
return newFriDBManager;
}
#pragma mark -------------根据不同的memberId来创建不同的数据库表---------------------
-(void)openDatabaseWithMemberId:(NSString *)memberId{
if (memberId.length ==
0) {
return;
}
// Documents 路径
NSArray * paths =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask,
YES);
// memberID md5
const
char * cStr = [memberId
UTF8String];
unsigned
char result[16];
CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
NSString* MD5 = [NSString
stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",result[0],
result[1], result[2], result[3], result[4],
result[5], result[6], result[7],result[8],
result[9], result[10], result[11],result[12],
result[13], result[14], result[15]];
//md5 加密数据库文件路径
NSString * documentsDirectory = [[paths
objectAtIndex:0]stringByAppendingPathComponent:MD5];
NSFileManager *fileManager = [NSFileManager
defaultManager];
BOOL isDir =
FALSE;
BOOL isDirExist = [fileManager
fileExistsAtPath:documentsDirectory
isDirectory:&isDir];
//判断路径是否存在,不存在就创建 ----
都是YES
啊
if (!(isDirExist && isDir)) {
BOOL bCreateDir = [fileManager
createDirectoryAtPath:documentsDirectory
withIntermediateDirectories:YES
attributes:nil
error:nil];
if (!bCreateDir) {
NSLog(@"创建数据库路径失败");
}
DSLog(@"创建数据库路径成功:%@",documentsDirectory);
}
NSString * dbPath = [documentsDirectory
stringByAppendingPathComponent:@"NewFriendsDBModel.db"];
if (self.dataBaseNew) {
[self.dataBaseNew
close];
self.dataBaseNew =
nil;
}
self.dataBaseNew = [FMDatabase
databaseWithPath:dbPath];
[self.dataBaseNew
open];
[self
NewFriendsDBTableCreate];
}
#pragma mark 在表中创建 NewFriendsDB
字段
保存新的好友请求信息
- (void)NewFriendsDBTableCreate {
[self
createTable:@"NewFriendsDB"
sql:@"CREATE table NewFriendsDB (memberId TEXT NOT NULL PRIMARY KEY UNIQUE ON CONFLICT REPLACE, regdate TEXT,memberNick TEXT,memberNickImg TEXT,memberMobile TEXT,addWay
INTEGER,isRead INTEGER,requestMessage TEXT,fNo INTEGER)"];
}
// 创建表
- (void) createTable:(NSString*)tableName sql:(NSString *)createSql {
BOOL isExist = [self.dataBaseNew
tableExists:tableName];
if (!isExist) {
[self.dataBaseNew
executeUpdate:createSql];
}
}
//intForColumn:
//longForColumn:
//longLongIntForColumn:
//boolForColumn:
//doubleForColumn:
//stringForColumn:
//dateForColumn:
//dataForColumn:
//dataNoCopyForColumn:
//UTF8StringForColumnIndex:
//objectForColumn:
- (NSMutableDictionary *)loadAllNewFriendModel {
NSMutableDictionary * sessionDictionay = [NSMutableDictionary
dictionary];
FMResultSet *rs = [self.dataBaseNew
executeQuery:@"SELECT memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead, requestMessage ,fNo FROM NewFriendsDB"];//ORDER
BY regdate DESC
while ([rs
next]) {
NSString * memberId = [rs
stringForColumnIndex:0];
if (memberId.length>0) {
NewFriendModel* session = [[NewFriendModel
alloc] init];
int columnIndex =
0;
session.memberId = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.regdate = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
// session.regdate = [rs dateForColumnIndex:columnIndex]; columnIndex ++;
session.memberNick = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.memberNickImg = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.memberMobile = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.addWay = [rs
intForColumnIndex:columnIndex]; columnIndex++;
session.isRead = [rs
intForColumnIndex:columnIndex]; columnIndex++;
session.requestMessage = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.fNo = [rs
intForColumnIndex:columnIndex]; columnIndex++;
[sessionDictionay setObject:session
forKey:memberId];
// [self updateMessageStateFailedAndSessionId:sessionid];
}
}
[rs close];
return sessionDictionay;
}
-(NSArray*)getAllModelArr{
NSDictionary * _allNewFriDict =
nil;
if (!_allNewFriDict){
_allNewFriDict = [self
loadAllNewFriendModel];
}
return [_allNewFriDict.allValues
sortedArrayUsingComparator:
^(NewFriendModel *obj1,
NewFriendModel* obj2){
NSComparisonResult result = [obj1.regdate
compare:obj2.regdate];
// NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);
return result;
}];
}
-(NSArray *)getAllModelOrderArr{
NSArray * newFriendArr1 = [self
getAllModelArr];
NSArray * newFriendArr2 = [NSArray
array];
newFriendArr2 = [[newFriendArr1 reverseObjectEnumerator]
allObjects];
return newFriendArr2;
}
-(BOOL)addNewFriendsModel:(NewFriendModel *)model{
return [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];
}
#pragma mark 把好友请求列表都添加进去
-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr{
NSInteger i =
0 ;
for (NewFriendModel * model
in NewArr) {
if ([self
addNewFriendsModel:model]) {
i ++;
}
}
return i ;
}
-(void)updateNewFriendsModel:(NewFriendModel *)model{
BOOL UPDATE =
NO;
UPDATE = [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];
if (UPDATE) {
DSLog(@"新的好友请求数据更新成功");
}
}
-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId{
BOOL UpdateAddWay =
NO;
NSString *updateSql = [NSString
stringWithFormat:
@"UPDATE '%@' SET addWay = %d WHERE memberId = '%@'",
NEWFRIENDSDB,state,memberId];
// UpdateAddWay = [self.dataBaseNew executeUpdate:@"UPDATE NewFriendsDB SET addWay = %d WHERE memberId = '%@'",state,memberId];
UpdateAddWay = [self.dataBaseNew
executeUpdate:updateSql];
if (UpdateAddWay) {
DSLog(@" -- UpdateAddWay
更新成功");
}
}
-(void)deleteNewFriendModel:(NSString *)memberId{
BOOL UPDATE =
NO;
UPDATE = [self.dataBaseNew
executeUpdate:@"DELETE FROM NewFriendsDB WHERE memberId = ?",memberId]
;
if (UPDATE) {
// DSLog(@" 删除
拒绝
新的好友请求数据更新成功");
}
}
@end
// NewFriendsDBModel.h
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/7/7.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "FMDB.h"
#import "NewFriendModel.h"
@interface NewFriendsDBModel :
NSObject
@property (nonatomic,strong)
FMDatabase * dataBaseNew;
+(NewFriendsDBModel *) sharedInstance;
-(void)openDatabaseWithMemberId:(NSString *)memberId;
-(NSMutableDictionary*)loadAllNewFriendModel;
-(BOOL)addNewFriendsModel:(NewFriendModel *)model;
-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr;
-(void)updateNewFriendsModel:(NewFriendModel *)model;
-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId;
//删除好友请求
-(void)deleteNewFriendModel:(NSString *)memberId;
//- (void)deleteSession:(NSString*)sessionId;
// 查询本地数据库排序好的
-(NSArray *)getAllModelOrderArr;
@end
//
// NewFriendsDBModel.m
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/7/7.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import "NewFriendsDBModel.h"
#define NEWFRIENDSDB @"NewFriendsDB"
@implementation NewFriendsDBModel
+(NewFriendsDBModel *)sharedInstance{
static
NewFriendsDBModel * newFriDBManager;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
newFriDBManager = [[NewFriendsDBModel
alloc]init];
});
return newFriDBManager;
}
#pragma mark -------------根据不同的memberId来创建不同的数据库表---------------------
-(void)openDatabaseWithMemberId:(NSString *)memberId{
if (memberId.length ==
0) {
return;
}
// Documents 路径
NSArray * paths =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask,
YES);
// memberID md5
const
char * cStr = [memberId
UTF8String];
unsigned
char result[16];
CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
NSString* MD5 = [NSString
stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",result[0],
result[1], result[2], result[3], result[4],
result[5], result[6], result[7],result[8],
result[9], result[10], result[11],result[12],
result[13], result[14], result[15]];
//md5 加密数据库文件路径
NSString * documentsDirectory = [[paths
objectAtIndex:0]stringByAppendingPathComponent:MD5];
NSFileManager *fileManager = [NSFileManager
defaultManager];
BOOL isDir =
FALSE;
BOOL isDirExist = [fileManager
fileExistsAtPath:documentsDirectory
isDirectory:&isDir];
//判断路径是否存在,不存在就创建 ----
都是YES
啊
if (!(isDirExist && isDir)) {
BOOL bCreateDir = [fileManager
createDirectoryAtPath:documentsDirectory
withIntermediateDirectories:YES
attributes:nil
error:nil];
if (!bCreateDir) {
NSLog(@"创建数据库路径失败");
}
DSLog(@"创建数据库路径成功:%@",documentsDirectory);
}
NSString * dbPath = [documentsDirectory
stringByAppendingPathComponent:@"NewFriendsDBModel.db"];
if (self.dataBaseNew) {
[self.dataBaseNew
close];
self.dataBaseNew =
nil;
}
self.dataBaseNew = [FMDatabase
databaseWithPath:dbPath];
[self.dataBaseNew
open];
[self
NewFriendsDBTableCreate];
}
#pragma mark 在表中创建 NewFriendsDB
字段
保存新的好友请求信息
- (void)NewFriendsDBTableCreate {
[self
createTable:@"NewFriendsDB"
sql:@"CREATE table NewFriendsDB (memberId TEXT NOT NULL PRIMARY KEY UNIQUE ON CONFLICT REPLACE, regdate TEXT,memberNick TEXT,memberNickImg TEXT,memberMobile TEXT,addWay
INTEGER,isRead INTEGER,requestMessage TEXT,fNo INTEGER)"];
}
// 创建表
- (void) createTable:(NSString*)tableName sql:(NSString *)createSql {
BOOL isExist = [self.dataBaseNew
tableExists:tableName];
if (!isExist) {
[self.dataBaseNew
executeUpdate:createSql];
}
}
//intForColumn:
//longForColumn:
//longLongIntForColumn:
//boolForColumn:
//doubleForColumn:
//stringForColumn:
//dateForColumn:
//dataForColumn:
//dataNoCopyForColumn:
//UTF8StringForColumnIndex:
//objectForColumn:
- (NSMutableDictionary *)loadAllNewFriendModel {
NSMutableDictionary * sessionDictionay = [NSMutableDictionary
dictionary];
FMResultSet *rs = [self.dataBaseNew
executeQuery:@"SELECT memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead, requestMessage ,fNo FROM NewFriendsDB"];//ORDER
BY regdate DESC
while ([rs
next]) {
NSString * memberId = [rs
stringForColumnIndex:0];
if (memberId.length>0) {
NewFriendModel* session = [[NewFriendModel
alloc] init];
int columnIndex =
0;
session.memberId = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.regdate = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
// session.regdate = [rs dateForColumnIndex:columnIndex]; columnIndex ++;
session.memberNick = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.memberNickImg = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.memberMobile = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.addWay = [rs
intForColumnIndex:columnIndex]; columnIndex++;
session.isRead = [rs
intForColumnIndex:columnIndex]; columnIndex++;
session.requestMessage = [rs
stringForColumnIndex:columnIndex]; columnIndex++;
session.fNo = [rs
intForColumnIndex:columnIndex]; columnIndex++;
[sessionDictionay setObject:session
forKey:memberId];
// [self updateMessageStateFailedAndSessionId:sessionid];
}
}
[rs close];
return sessionDictionay;
}
-(NSArray*)getAllModelArr{
NSDictionary * _allNewFriDict =
nil;
if (!_allNewFriDict){
_allNewFriDict = [self
loadAllNewFriendModel];
}
return [_allNewFriDict.allValues
sortedArrayUsingComparator:
^(NewFriendModel *obj1,
NewFriendModel* obj2){
NSComparisonResult result = [obj1.regdate
compare:obj2.regdate];
// NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);
return result;
}];
}
-(NSArray *)getAllModelOrderArr{
NSArray * newFriendArr1 = [self
getAllModelArr];
NSArray * newFriendArr2 = [NSArray
array];
newFriendArr2 = [[newFriendArr1 reverseObjectEnumerator]
allObjects];
return newFriendArr2;
}
-(BOOL)addNewFriendsModel:(NewFriendModel *)model{
return [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];
}
#pragma mark 把好友请求列表都添加进去
-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr{
NSInteger i =
0 ;
for (NewFriendModel * model
in NewArr) {
if ([self
addNewFriendsModel:model]) {
i ++;
}
}
return i ;
}
-(void)updateNewFriendsModel:(NewFriendModel *)model{
BOOL UPDATE =
NO;
UPDATE = [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];
if (UPDATE) {
DSLog(@"新的好友请求数据更新成功");
}
}
-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId{
BOOL UpdateAddWay =
NO;
NSString *updateSql = [NSString
stringWithFormat:
@"UPDATE '%@' SET addWay = %d WHERE memberId = '%@'",
NEWFRIENDSDB,state,memberId];
// UpdateAddWay = [self.dataBaseNew executeUpdate:@"UPDATE NewFriendsDB SET addWay = %d WHERE memberId = '%@'",state,memberId];
UpdateAddWay = [self.dataBaseNew
executeUpdate:updateSql];
if (UpdateAddWay) {
DSLog(@" -- UpdateAddWay
更新成功");
}
}
-(void)deleteNewFriendModel:(NSString *)memberId{
BOOL UPDATE =
NO;
UPDATE = [self.dataBaseNew
executeUpdate:@"DELETE FROM NewFriendsDB WHERE memberId = ?",memberId]
;
if (UPDATE) {
// DSLog(@" 删除
拒绝
新的好友请求数据更新成功");
}
}
@end
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法