字典数据存入数据库(转换为二进制)
2016-06-23 17:44
357 查看
+(instancetype)defaultManager
{
static
DataBaseManager *manager =
nil;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[DataBaseManager
alloc] init];
});
return manager;
}
- (instancetype)init
{
if ([super
init]) {
_dataBase = [[FMDatabase
alloc] initWithPath:[NSHomeDirectory()
stringByAppendingString:@"/Documents/dynamic.db"]];
[_dataBase
open];
//存储消息
NSString *msgSql = [NSString
stringWithFormat:@"CREATE TABLE IF NOT EXISTS Message (msgId TEXT PRIMARY KEY NOT NULL ,custId TEXT, msgType TEXT ,subMsgType TEXT, pushBy TEXT ,sendDatetime TEXT, msgTitle
TEXT ,devId TEXT, msgBodyId TEXT ,msgContent TEXT, extraMsg BLOB)"];
if ([_dataBase
executeUpdate:msgSql]) {
NSLog(@"成功建表");
}else
{
NSLog(@"建表失败");
}
}
return
self;
}
- (void)addMessageRecord:(MessageModel *)model {
NSString *sql = [NSString
stringWithFormat:@"insert into Message (msgId, custId, msgType, subMsgType, pushBy, sendDatetime, msgTitle, devId, msgBodyId, msgContent, extraMsg) values(?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?)"];
//存储时把字典转换为二进制数据
NSDictionary *extraMsgDic = (NSDictionary *)model.extraMsg;
NSData *extraMsgData = [NSJSONSerialization
dataWithJSONObject:extraMsgDic
options:NSJSONWritingPrettyPrinted
error:nil];
if ([_dataBase
executeUpdate:sql, [NSString
stringWithFormat:@"%@%@", model.msgId,
UserCid], model.custId, model.msgType, model.subMsgType,
model.pushBy, model.sendDatetime, model.msgTitle, model.devId,
model.msgBodyId, model.msgContent, extraMsgData]) {
NSLog(@"插入成功");
}else {
NSLog(@"");
}
}
- (NSArray *)allMessages {
NSMutableArray *arr = [[NSMutableArray
alloc]
init];
NSString *sql = [NSString
stringWithFormat:@"select *from Message"];
FMResultSet *set = [_dataBase
executeQuery:sql];
while (set.next) {
MessageModel *model = [[MessageModel
alloc] init];
//这个model的msgid是拼接了用户id的model
NSMutableString *msgIdAndCid = [[set
stringForColumn:@"msgId"]
mutableCopy];
model.msgId = [msgIdAndCid
substringToIndex:32];
model.custId = [set
stringForColumn:@"custId"];
model.msgType = [set
stringForColumn:@"msgType"];
model.subMsgType = [set
stringForColumn:@"subMsgType"];
model.pushBy = [set
stringForColumn:@"pushBy"];
model.sendDatetime = [set
stringForColumn:@"sendDatetime"];
model.msgTitle= [set
stringForColumn:@"msgTitle"];
model.devId = [set
stringForColumn:@"devId"];
model.msgBodyId = [set
stringForColumn:@"msgBodyId"];
model.msgContent = [set
stringForColumn:@"msgContent"];
//把二进制数据转换为字典
NSData *extraMsgData = [set
dataForColumn:@"extraMsg"];
NSDictionary *extraMsg = [NSJSONSerialization
JSONObjectWithData:extraMsgData
options:NSJSONReadingMutableContainers
error:nil];
model.extraMsg = extraMsg;
[arr addObject:model];
}
return arr;
}
- (void)deleteMessageRecord:(MessageModel *)model {
//通过ID来删除
NSString *sql =
@"delete from Message where msgId = ?";
[_dataBase
executeUpdate:sql,[NSString
stringWithFormat:@"%@%@", model.msgId,
UserCid]];
}
@property (nonatomic,copy)
NSString *msgId;
@property (nonatomic,copy)
NSString *custId;
@property (nonatomic,copy)
NSString *msgType;
@property (nonatomic,copy)
NSString *subMsgType;
@property (nonatomic,copy)
NSString *pushBy;
@property (nonatomic,copy)
NSString *sendDatetime;
@property (nonatomic,copy)
NSString *msgTitle;
@property (nonatomic,copy)
NSString *devId;
@property (nonatomic,copy)
NSString *msgBodyId;
@property (nonatomic,copy)
NSString *msgContent;
@property (nonatomic,copy)
NSDictionary *extraMsg;
{
static
DataBaseManager *manager =
nil;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[DataBaseManager
alloc] init];
});
return manager;
}
- (instancetype)init
{
if ([super
init]) {
_dataBase = [[FMDatabase
alloc] initWithPath:[NSHomeDirectory()
stringByAppendingString:@"/Documents/dynamic.db"]];
[_dataBase
open];
//存储消息
NSString *msgSql = [NSString
stringWithFormat:@"CREATE TABLE IF NOT EXISTS Message (msgId TEXT PRIMARY KEY NOT NULL ,custId TEXT, msgType TEXT ,subMsgType TEXT, pushBy TEXT ,sendDatetime TEXT, msgTitle
TEXT ,devId TEXT, msgBodyId TEXT ,msgContent TEXT, extraMsg BLOB)"];
if ([_dataBase
executeUpdate:msgSql]) {
NSLog(@"成功建表");
}else
{
NSLog(@"建表失败");
}
}
return
self;
}
- (void)addMessageRecord:(MessageModel *)model {
NSString *sql = [NSString
stringWithFormat:@"insert into Message (msgId, custId, msgType, subMsgType, pushBy, sendDatetime, msgTitle, devId, msgBodyId, msgContent, extraMsg) values(?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?)"];
//存储时把字典转换为二进制数据
NSDictionary *extraMsgDic = (NSDictionary *)model.extraMsg;
NSData *extraMsgData = [NSJSONSerialization
dataWithJSONObject:extraMsgDic
options:NSJSONWritingPrettyPrinted
error:nil];
if ([_dataBase
executeUpdate:sql, [NSString
stringWithFormat:@"%@%@", model.msgId,
UserCid], model.custId, model.msgType, model.subMsgType,
model.pushBy, model.sendDatetime, model.msgTitle, model.devId,
model.msgBodyId, model.msgContent, extraMsgData]) {
NSLog(@"插入成功");
}else {
NSLog(@"");
}
}
- (NSArray *)allMessages {
NSMutableArray *arr = [[NSMutableArray
alloc]
init];
NSString *sql = [NSString
stringWithFormat:@"select *from Message"];
FMResultSet *set = [_dataBase
executeQuery:sql];
while (set.next) {
MessageModel *model = [[MessageModel
alloc] init];
//这个model的msgid是拼接了用户id的model
NSMutableString *msgIdAndCid = [[set
stringForColumn:@"msgId"]
mutableCopy];
model.msgId = [msgIdAndCid
substringToIndex:32];
model.custId = [set
stringForColumn:@"custId"];
model.msgType = [set
stringForColumn:@"msgType"];
model.subMsgType = [set
stringForColumn:@"subMsgType"];
model.pushBy = [set
stringForColumn:@"pushBy"];
model.sendDatetime = [set
stringForColumn:@"sendDatetime"];
model.msgTitle= [set
stringForColumn:@"msgTitle"];
model.devId = [set
stringForColumn:@"devId"];
model.msgBodyId = [set
stringForColumn:@"msgBodyId"];
model.msgContent = [set
stringForColumn:@"msgContent"];
//把二进制数据转换为字典
NSData *extraMsgData = [set
dataForColumn:@"extraMsg"];
NSDictionary *extraMsg = [NSJSONSerialization
JSONObjectWithData:extraMsgData
options:NSJSONReadingMutableContainers
error:nil];
model.extraMsg = extraMsg;
[arr addObject:model];
}
return arr;
}
- (void)deleteMessageRecord:(MessageModel *)model {
//通过ID来删除
NSString *sql =
@"delete from Message where msgId = ?";
[_dataBase
executeUpdate:sql,[NSString
stringWithFormat:@"%@%@", model.msgId,
UserCid]];
}
@property (nonatomic,copy)
NSString *msgId;
@property (nonatomic,copy)
NSString *custId;
@property (nonatomic,copy)
NSString *msgType;
@property (nonatomic,copy)
NSString *subMsgType;
@property (nonatomic,copy)
NSString *pushBy;
@property (nonatomic,copy)
NSString *sendDatetime;
@property (nonatomic,copy)
NSString *msgTitle;
@property (nonatomic,copy)
NSString *devId;
@property (nonatomic,copy)
NSString *msgBodyId;
@property (nonatomic,copy)
NSString *msgContent;
@property (nonatomic,copy)
NSDictionary *extraMsg;
相关文章推荐
- oracle 中文乱码
- 安装和使用Inforbright
- oracle:优化2----使用hints,加速生成执行计划
- 远程连接MySQL,防火墙阻止访问,解决方法【完美】
- Oracle 快照初次使用
- Java 和 Oracle 四舍五入问题。
- MySQL DECIMAL(M,D)用法小结
- 关于还原数据库,数据库报红线解决
- Postgresql 修改用户密码
- SQL中如何取消数字前面的0 字母
- windows 安装MongoDB(64位)
- HTML5 web SQL 和indexedDB的使用
- 数据库匹配插入不重复数据
- Sql Server 2008完全卸载方法(其他版本类似)
- sqlserver2008安装教程
- MySql模糊查询like通配符使用详细介绍
- redis常见问题汇总
- 浅析Redis复制
- MongoDB的Master-Slave主从模式配置及主从复制要点解析
- 动态SQL语句