关于FMDB 数据库自己看着学的,希望可以互相学习
来源:互联网 发布:excel办公软件 编辑:程序博客网 时间:2024/06/06 04:17
//获取单例对象
+(id)sharedInstance
{
static SchoolData *cr = nil;
if (cr == nil)
{
cr = [[[super class] alloc] init];
}
return cr;
}
-(id)init
{
self = [super init];
if (self)
{
[self initDataBase];
}
return self;
}
-(void)initDataBase
{
NSString *path = [NSString stringWithFormat:@"%@/Documents/chatRecord.sqlite",NSHomeDirectory()];
_database = [[FMDatabase alloc] initWithPath:path];
if (_database.open == NO)
{
NSLog(@"数据库没有打开");
return;
}
NSString *sql = [NSString stringWithFormat:@"create table if not exists chatList ("
" id integer primary key autoincrement not null, "
" fromUser text, "
" content text, "
" toUser text,"
" fromUserHead text,"
" toUserHead text"
");"
];
BOOL b = [_database executeUpdate:sql];
NSLog(@"create b = %d",b);
}
-(void)initDatabaseWithFromUser:(NSString *)fromUser WithToUser:(NSString *)toUser
{
//创建数据库
NSString *path = [NSString stringWithFormat:@"%@/Documents/chatRecord.sqlite",NSHomeDirectory()];
_database = [[FMDatabase alloc] initWithPath:path];
if (_database.open == NO)
{
NSLog(@"数据库打开失败");
return;
}
NSString *sql = [NSString stringWithFormat:@"create table if not exists _%@and%@ ("
" id integer primary key autoincrement not null, "
" fromUser text, "
" content text, "
" toUser text,"
" isRead text"
");",fromUser,toUser];
BOOL b = [_database executeUpdate:sql];
// NSString *sql1 = @"create table if not exists receive ("
// " id integer primary key autoincrement not null, "
// " uphone varchar(128), "
// " content varchar(2048), "
// " tphone varchar(32),"
// " ptime varchar(1024),"
// " from_user_name varchar(1024),"
// " from_user_picurl varchar(1024)"
// ");";
NSLog(@"create table = %d",b);
}
//添加记录
-(BOOL)addRecordWithContent:(NSDictionary *)dict WithFromUser:(NSString *)fromUser WithToUser:(NSString *)toUser
{
//NSString *sql = @"insert into applist(uphone,content,password,tphone) values(?,?,?,?)";
NSString *sql = [NSString stringWithFormat:@"insert into _%@and%@(fromUser,content,toUser,isRead) values(?,?,?,?)",fromUser,toUser];
// BOOL b = [_database executeUpdate:sql,[NSString stringWithFormat:@"%d",recordType],model.applicationId,model.name,model.iconUrl,@"limit",model.lastPrice,model.currentPrice];
BOOL b = [_database executeUpdate:sql,[NSString stringWithFormat:@"%@",dict[@"fromUser"]],[NSString stringWithFormat:@"%@",dict[@"content"]],[NSString stringWithFormat:@"%@",dict[@"toUser"]],[NSString stringWithFormat:@"%@",dict[@"isRead"]]];
NSLog(@"inster b = %d",b);
return b;
}
//查看某个记录是否存在
-(BOOL)isExistsRecordWithUphone:(NSString *)uphone andTphone:(NSString *)tphone
{
//NSString *sql = @"select count(*) from applist where applicationId = ? and recordType = ?";
NSString *sql = @"select * from school where name like '%?%'";
FMResultSet *resultSet = [_database executeQuery:sql,[NSString stringWithFormat:@"%@",uphone],[NSString stringWithFormat:@"%@",tphone]];
int count = 0;
if ([resultSet next])
{
count = [resultSetintForColumnIndex:0];
}
return count>0;
}
//获取聊天列表
-(NSMutableArray *)getChatList
{
NSString *sql = [NSStringstringWithFormat:@"select * from chatList order by id desc"];
FMResultSet *resultSet = [_databaseexecuteQuery:sql];
NSMutableArray *array = [[NSMutableArrayalloc] init];
while ([resultSet next])
{
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:[resultSetstringForColumn:@"fromUser"],@"fromUser",[resultSetstringForColumn:@"content"],@"content",[resultSetstringForColumn:@"toUser"],@"toUser",[resultSetstringForColumn:@"fromUserHead"],@"fromUserHead",[resultSetstringForColumn:@"toUserHead"],@"toUserHead",nil];
[arrayaddObject:dict];
}
return array;
}
//插入聊天列表
-(void)addChatList:(NSDictionary *)dict WithFromUser:(NSString *)fromUser
{
NSString *sql = [NSStringstringWithFormat:@"delete from chatList where fromUser = '%@' and id > 0;",fromUser];
BOOL b = [_databaseexecuteUpdate:sql];
NSLog(@"delete = %d",b);
NSString *sql1 = [NSStringstringWithFormat:@"insert into%@(fromUser,content,toUser,fromUserHead,toUserHead) values(?,?,?,?,?,?)",fromUser];
b = [_databaseexecuteUpdate:sql1,dict[@"fromUser"],dict[@"content"],dict[@"toUser"],dict[@"fromUserHead"],dict[@"toUserHead"]];
NSLog(@"insert b = %d",b);
}
//查询是否有该聊天记录
-(BOOL)IsChatFromUser:(NSString *)fromUser WithToUser:(NSString *)toUser
{
NSString *sql =@"select * from chatList where fromUser = ?";
FMResultSet *resultSet = [_databaseexecuteQuery:sql,fromUser];
int count = 0;
if ([resultSet next])
{
count = [resultSetintForColumnIndex:0];
}
return count>0;
}
//修改信息已读
-(void)setChatIsReadFromUser:(NSString *)fromUser WithToUser:(NSString *)toUser
{
NSString *sql = [NSStringstringWithFormat:@"update _%@and%@ set isRead=1 where id > 0 and isRead=0;",fromUser,toUser];
BOOL b = [_databaseexecuteUpdate:sql];
NSLog(@"set = %d",b);
}
//获取某个好友聊天的记录
-(NSMutableArray *)getRecordWithName:(NSString *)name
{
//NSString *sql = @"select * from applist where recordType = ?";
NSString *str = [NSStringstringWithFormat:@"%%%@%%",name];
NSString *sql =@"select * from school where name like ?";
FMResultSet *resultSet = [_databaseexecuteQuery:sql,str];
//返回多条信息
NSMutableArray *array = [[NSMutableArrayalloc] init];
while ([resultSet next])
{
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:[resultSet stringForColumn:@"name"],@"name",[resultSetstringForColumn:@"id"],@"id",nil];
[arrayaddObject:dict];
}
return array;
}
//获取我的聊天记录
-(NSMutableArray *)getRecordFromUser:(NSString *)fromUser WithToUser:(NSString *)toUser AndMaxID:(NSString *)maxID
{
NSString *sql = [NSStringstringWithFormat:@"select * from _%@and%@ where id < ? order by id desc limit 20",fromUser,toUser];
FMResultSet *resultSet = [_databaseexecuteQuery:sql];
NSMutableArray *array = [[NSMutableArrayalloc] init];
while ([resultSet next])
{
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:[resultSet stringForColumn:@"fromUser"],@"fromUser",[resultSetstringForColumn:@"content"],@"content",[resultSetstringForColumn:@"toUser"],@"toUser",[resultSetstringForColumn:@"isRead"],@"isRead",[resultSetstringForColumn:@"id"],@"id",nil];
[arrayaddObject:dict];
}
NSLog(@"array = %@",array);
return array;
}
//查看未读消息数
-(NSString *)getNoReadCount:(NSString *)fromUser WithToUser:(NSString *)toUser
{
NSString *sql = [NSStringstringWithFormat:@"select count(*) as count from _%@and%@ where isRead = 0",fromUser,toUser];
NSString *count = [[NSStringalloc] init];
//#update message set isRead=1 where id > 0 and isRead=0;
FMResultSet *resultSet = [_databaseexecuteQuery:sql];
while ([resultSet next])
{
count = [resultSetstringForColumn:@"count"];
}
return count;
}
- 关于FMDB 数据库自己看着学的,希望可以互相学习
- 希望自己可以更好
- 我的个人嵌入式专题,希望大家能够互相学习!!
- mark:写给自己:开始学习,记录一下,希望自己可以坚持下去
- 数据库的使用,FMDB
- 数据库FMDB的使用
- iOS关于数据库的操作(使用第三方类库FMDB)
- iOS关于数据库的操作(使用第三方类库FMDB)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- 关于FMDB的讲解
- 希望是可以的,
- 终于抽出时间了,可以写自己的博客了,希望能够记录自己的学习和生活过程,与朋友共勉
- 我希望与你们互相学习
- 源码共享,希望一起互相学习
- 初识Java,希望自己可以坚持。
- Leetcode之Palindrome Number
- poj 1502 MPI Maelstrom Dijkstra算法的简单运用 ,呵呵,,我估计有很多人都没看懂什么意思,我也看了很久
- [SPOJ]-1481-寻找素数项-miller rabin
- [USACO]-4.2-完美的牛栏-二分图匹配
- iOS XMPP Framework 07 - 收发消息 上
- 关于FMDB 数据库自己看着学的,希望可以互相学习
- [搬运]关于扩展欧几里得与同余方程
- Poj-1330-Nearest Common Ancestors-倍增LCA
- lazarus(ct版)自带的一个超级酷的三维动画例子截图
- vijos 1034 家族
- TENSE(时态)
- NYOJ-214(动态规划)-题目----------------------------- 单调递增子序列(二)
- poj3368
- [Poj]-1679-The Unique MST-N久没写代码的后果╮( ̄▽ ̄)╭