Initial commit

This commit is contained in:
ifish
2017-08-15 16:59:01 +08:00
commit bdc83e07ef
5766 changed files with 423223 additions and 0 deletions
+231
View File
@@ -0,0 +1,231 @@
//
// 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