232 lines
8.4 KiB
Objective-C
232 lines
8.4 KiB
Objective-C
//
|
||
// IfishDatabaseManager.m
|
||
// Ifish
|
||
//
|
||
// Created by imac on 15/12/23.
|
||
// Copyright © 2015年 imac. All rights reserved.
|
||
//
|
||
|
||
#import "IfishDatabaseManager.h"
|
||
#import "FMDatabase.h"
|
||
#import "IfishDBHelper.h"
|
||
#import "PushmessageModel.h"
|
||
#import "IfishInformations.h"
|
||
@implementation IfishDatabaseManager
|
||
{
|
||
FMDatabase *_dataBase;
|
||
|
||
}
|
||
static NSString * const userTableName = @"USERTABLE";
|
||
static NSString * const deviceTableName = @"DEVICETABLE";
|
||
static NSString * const venderTableName = @"VENDERTABLE";
|
||
static NSString * const shopTableName = @"SHOPTABLE";
|
||
static NSString * const PushMassgeTableName = @"PUSHTABLE";
|
||
static NSString * const InformationsTableName = @"INFORMATIONSTABLE";
|
||
|
||
|
||
+ (instancetype)sharedManager{
|
||
|
||
static IfishDatabaseManager *manager = nil;
|
||
@synchronized(self) {
|
||
if (manager == nil) {
|
||
manager = [[IfishDatabaseManager alloc] init];
|
||
[manager creatTable];
|
||
}
|
||
}
|
||
return manager;
|
||
}
|
||
/*-(id)init{
|
||
//使用base
|
||
// 获取沙盒路径,因为数据库文件要存储在沙盒中
|
||
// 找到沙盒下面的Docuemnts文件夹路径,相当于 [NSHomeDirectory() stringByAppendingPathComponents:@"Document"]
|
||
if (self=[super init]) {
|
||
NSString*documentPath=[NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];
|
||
// 在沙盒中指定数据库文件路径
|
||
NSString*dbPath=[documentPath stringByAppendingString:@"IfishDBM.db"];
|
||
// 新建FMDB对象并调用initWithPath关联数据库文件
|
||
_dataBase=[[FMDatabase alloc]initWithPath:dbPath];
|
||
// 打开数据库创建表格 打开数据库文件,如果这个文件(dbPath)原来是存在的, 则直接打开,不会破坏原来的内容
|
||
// 如果不存在,则自动创建一个空的数据库文件
|
||
//用户 设备 厂家 商家 未完成!!!
|
||
|
||
}
|
||
return self;
|
||
}*/
|
||
|
||
|
||
-(void)creatTable{
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
if (queue==nil) {
|
||
return;
|
||
}
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
//要创建的表
|
||
if (![IfishDBHelper isTableOK:userTableName withDB:db]) {
|
||
|
||
|
||
}
|
||
|
||
if (![IfishDBHelper isTableOK: deviceTableName withDB:db]) {
|
||
|
||
|
||
|
||
}
|
||
if (![IfishDBHelper isTableOK: venderTableName withDB:db]) {
|
||
|
||
|
||
}
|
||
|
||
if (![IfishDBHelper isTableOK: shopTableName withDB:db]) {
|
||
|
||
|
||
}
|
||
if (![IfishDBHelper isTableOK: PushMassgeTableName withDB:db]){
|
||
|
||
if ([db open]) {
|
||
|
||
NSString*sql=@"create table if not exists pushtable(serial integer Primary Key Autoincrement,massageType Varchar(1024),massageBody Varchar(1024),massageTitle Varchar(1024),createTime Varchar(1024),deviceId Varchar(1024),showName Varchar(1024),userId Varchar(1024))";
|
||
|
||
if ([db executeUpdate:sql]) {
|
||
|
||
NSLog(@"成功创建表格 pushMassageInfo");
|
||
|
||
}else{
|
||
NSLog(@"creatTable error:%@",db.lastErrorMessage);
|
||
}
|
||
}
|
||
|
||
}
|
||
if (![IfishDBHelper isTableOK: InformationsTableName withDB:db]) {
|
||
|
||
if ([db open]) {
|
||
|
||
NSString*sql=@"create table if not exists informationstable(serial integer Primary Key Autoincrement,clickNum Varchar(1024),pinglunNum Varchar(1024),contents Varchar(1024),image Varchar(1024),infoId Varchar(1024),link Varchar(1024),title Varchar(1024))";
|
||
|
||
if ([db executeUpdate:sql]) {
|
||
NSLog(@"成功创建表格 InformationsInfo");
|
||
|
||
}else{
|
||
NSLog(@"creatTable error:%@",db.lastErrorMessage);
|
||
}
|
||
}
|
||
}
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
/*-(void)insertModel:(id)model{
|
||
//使用单个base
|
||
if ([_dataBase open]) {
|
||
PushmassageModel*massagemodel=(PushmassageModel*)model;
|
||
NSString *sql=@"insert into pushtable (massageType,massageTitle,massageBody,createTime,deviceId,showName,userId) values(?,?,?,?,?,?,?)";
|
||
BOOL isSccess=[_dataBase executeUpdate:sql,massagemodel.massageType,massagemodel.massageTitle,massagemodel.massageBody,massagemodel.createTime,massagemodel.deviceId,massagemodel.showName,massagemodel.userId];
|
||
if (!isSccess) {
|
||
NSLog(@"insert error:%@",_dataBase.lastErrorMessage);
|
||
}
|
||
|
||
};
|
||
[_dataBase close];
|
||
}*/
|
||
|
||
//使用baseQueue
|
||
-(void)insertModel:(id)model{
|
||
|
||
|
||
NSString *sql=@"insert into pushtable (massageType,massageTitle,massageBody,createTime,deviceId,showName,userId) values(?,?,?,?,?,?,?)";
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
//必须为对象类型
|
||
PushmessageModel*massagemodel=(PushmessageModel*)model;
|
||
BOOL isSccess = [db executeUpdate:sql,massagemodel.pushType,massagemodel.pushTitle,massagemodel.pushContext,massagemodel.createTime,massagemodel.deviceId,massagemodel.showName,massagemodel.userId];
|
||
if (!isSccess) {
|
||
NSLog(@"insert error:%@",db.lastErrorMessage);
|
||
|
||
}
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
-(void)deleteModel:(id)model{
|
||
|
||
NSString *sql=@"delete from pushtable where massageType=? and massageTitle=?";
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
//必须为对象类型
|
||
PushmessageModel*massagemodel=(PushmessageModel*)model;
|
||
BOOL isSccess = [db executeUpdate:sql,massagemodel.pushType,massagemodel.pushTitle];
|
||
if (!isSccess) {
|
||
NSLog(@"delete error:%@",db.lastErrorMessage);
|
||
|
||
}
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
-(NSArray*)readModel{
|
||
|
||
NSMutableArray *arr=[[NSMutableArray alloc] init];
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
NSString *sql=@"SELECT * FROM pushtable";
|
||
FMResultSet*rs=[db executeQuery:sql];
|
||
while ([rs next]) {
|
||
PushmessageModel*massagemodel=[[PushmessageModel alloc] init];
|
||
massagemodel.pushType=[rs stringForColumn:@"pushType"];
|
||
massagemodel.pushTitle=[rs stringForColumn:@"pushTitle"];
|
||
massagemodel.pushContext=[rs stringForColumn:@"pushContext"];
|
||
massagemodel.createTime =[rs stringForColumn:@"createTime"];
|
||
massagemodel.deviceId = [rs stringForColumn:@"deviceId"];
|
||
massagemodel.showName = [rs stringForColumn:@"showName"];
|
||
massagemodel.userId =[rs stringForColumn:@"userId"];
|
||
//[arr insertObject:massagemodel atIndex:0];
|
||
[arr addObject:massagemodel];
|
||
}
|
||
|
||
}];
|
||
return arr;
|
||
}
|
||
|
||
-(void)insertIfishInformations:(IfishInformations*)model
|
||
{
|
||
|
||
NSString *sql=@"insert into informationstable(clickNum,pinglunNum,contents,image,infoId,link,title) values(?,?,?,?,?,?,?)";
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
//必须为对象类型
|
||
BOOL isSccess = [db executeUpdate:sql,[NSNumber numberWithInt:model.clickNum],[NSNumber numberWithInt:model.pinglunNum],model.contents,model.image,[NSNumber numberWithInt:model.infoId],model.link,model.title];
|
||
if (!isSccess) {
|
||
NSLog(@"insert error:%@",db.lastErrorMessage);
|
||
|
||
}
|
||
}];
|
||
}
|
||
|
||
-(NSMutableArray*)readInformations{
|
||
|
||
NSMutableArray *arr=[[NSMutableArray alloc] init];
|
||
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
|
||
[queue inDatabase:^(FMDatabase *db) {
|
||
NSString *sql=@"SELECT * FROM informationstable";
|
||
FMResultSet*rs=[db executeQuery:sql];
|
||
while ([rs next]) {
|
||
IfishInformations*model=[[IfishInformations alloc] init];
|
||
model.clickNum=[rs intForColumn:@"clickNum"];
|
||
model.pinglunNum=[rs intForColumn:@"pinglunNum"];
|
||
model.contents=[rs stringForColumn:@"contents"];
|
||
model.image =[rs stringForColumn:@"image"];
|
||
model.infoId = [rs intForColumn:@"infoId"];
|
||
model.link = [rs stringForColumn:@"link"];
|
||
model.title =[rs stringForColumn:@"title"];
|
||
[arr addObject:model];
|
||
}
|
||
}];
|
||
return arr;
|
||
}
|
||
|
||
@end
|