ifish/Ifish/Utinitys/DB/IfishDatabaseManager.m

232 lines
8.4 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 "PushmassageModel.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) {
//必须为对象类型
PushmassageModel*massagemodel=(PushmassageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.massageType,massagemodel.massageTitle,massagemodel.massageBody,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) {
//必须为对象类型
PushmassageModel*massagemodel=(PushmassageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.massageType,massagemodel.massageTitle];
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]) {
PushmassageModel*massagemodel=[[PushmassageModel alloc] init];
massagemodel.massageType=[rs stringForColumn:@"massageType"];
massagemodel.massageTitle=[rs stringForColumn:@"massageTitle"];
massagemodel.massageBody=[rs stringForColumn:@"massageBody"];
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