#pragma mark - 数据库的操作

- (BOOL)judgeModel:(TaskResourceModel *)model isInArray:(NSArray *)shopArray

{

for (TaskResourceModel *shopModel in shopArray) {

if ([shopModel.resourceId isEqualToString:model.resourceId]) {

return YES;

}

}

return NO;

}

//初始化数据库数据

- (void)initTableDatas

{

//创建table

[self creatSqliteTable];

NSMutableArray *purchaceArray = [self selectPurchaceSqliteOfAllEntity];

for (TaskResourceModel *model in purchaceArray) {

NSMutableArray *shopArray = [self selectSqliteOfAllEntity];

if (![self judgeModel:model isInArray:shopArray]) {

[self insertEntityOfSourceStr:[model toJSONString] andSourceId:model.resourceId];

}

}

}

- (NSString *)sqlitePath

{

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString * doc = documentPath;

NSString * path;

User *user = [[User alloc] getUserInformation];

switch ([self.productCategoryId integerValue]) {

case 69:

{

NSString *userSqlitePath = [NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_wc.sqlite"];

path = [doc stringByAppendingPathComponent:userSqlitePath];

break;

}

case 68:

{

NSString *userSqlitePath = [NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_sina.sqlite"];

path = [doc stringByAppendingPathComponent:userSqlitePath];

break;

}

case 88:

{

NSString *userSqlitePath = [NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_qq.sqlite"];

path = [doc stringByAppendingPathComponent:userSqlitePath];

break;

}

default:

break;

}

return path;

}

- (NSString *)purchaseSqlitePath

{

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString * doc = documentPath;

NSString * path = [doc stringByAppendingPathComponent:@"taskResource.sqlite"];

return path;

}

//插

- (void)insertEntityOfSourceStr:(NSString *)sourceStr andSourceId:(NSString *)sourceId

{

NSFileManager * fileManager = [NSFileManager defaultManager];

[fileManager fileExistsAtPath:[self sqlitePath]];

//    if (![fileManager fileExistsAtPath:[self sqlitePath]]){

[self creatSqliteTable];

//    }

//    'sourceId' TEXT, 'sourceModelStr'

FMDatabase * db = [FMDatabase databaseWithPath:[self sqlitePath]];

if ([db open]) {

NSString *insertSql1= [NSString stringWithFormat:

@"INSERT INTO 'TaskSource' ('%@', '%@') VALUES ('%@', '%@')",

@"sourceId", @"sourceModelStr", sourceId, sourceStr];

BOOL res = [db executeUpdate:insertSql1];

if (!res) {

NSLog(@"error when insert db table");

} else {

NSLog(@"success to insert db table");

}

[db close];

}

}

//查所有的

- (NSMutableArray *)selectPurchaceSqliteOfAllEntity

{

NSMutableArray *array = [NSMutableArray array];

FMDatabase * db = [FMDatabase databaseWithPath:[self purchaseSqlitePath]];

if ([db open]) {

NSString *sql = @"SELECT * FROM TaskSource";

//        NSString * sql = @"select * from user";

FMResultSet * rs = [db executeQuery:sql];

while ([rs next]) {

NSString *json = [rs stringForColumn:@"sourceModelStr"];

TaskResourceModel *model = [[TaskResourceModel alloc] initWithString:json error:nil];

[array addObject:model];

}

[db close];

}

return array;

}

//查所有的

- (NSMutableArray *)selectSqliteOfAllEntity

{

NSMutableArray *array = [NSMutableArray array];

FMDatabase * db = [FMDatabase databaseWithPath:[self sqlitePath]];

if ([db open]) {

NSString *sql = @"SELECT * FROM TaskSource";

//        NSString * sql = @"select * from user";

FMResultSet * rs = [db executeQuery:sql];

while ([rs next]) {

NSString *json = [rs stringForColumn:@"sourceModelStr"];

TaskResourceModel *model = [[TaskResourceModel alloc] initWithString:json error:nil];

[array addObject:model];

}

[db close];

}

return array;

}

//删除

- (void)deletePurchaceSqliteOfSourceId:(NSString *)sourceId

{

FMDatabase * db = [FMDatabase databaseWithPath:[self purchaseSqlitePath]];

if ([db open]) {

NSString *sql = [NSString stringWithFormat:@"delete from TaskSource where sourceId = '%@'",sourceId];

//        NSString * sql = @"select * from user";

BOOL res = [db executeUpdate:sql];

if (!res) {

NSLog(@"error when delete db table");

} else {

NSLog(@"success to delete db table");

}

[db close];

}

}

//删除

- (void)deleteSqliteOfSourceId:(NSString *)sourceId

{

FMDatabase * db = [FMDatabase databaseWithPath:[self sqlitePath]];

if ([db open]) {

NSString *sql = [NSString stringWithFormat:@"delete from TaskSource where sourceId = '%@'",sourceId];

//        NSString * sql = @"select * from user";

BOOL res = [db executeUpdate:sql];

if (!res) {

NSLog(@"error when delete db table");

} else {

NSLog(@"success to delete db table");

}

[db close];

}

}

//查特定sourceid

- (TaskResourceModel *)selectSqliteOfSourceId:(NSString *)sourceId

{

FMDatabase * db = [FMDatabase databaseWithPath:[self sqlitePath]];

NSString *json;

if ([db open]) {

json = [db stringForQuery:@"SELECT sourceModelStr FROM TaskSource WHERE sourceId = ?",sourceId];

////        NSString * sql = @"select * from user";

//        FMResultSet * rs = [db executeQuery:sql];

//        while ([rs next]) {

//            NSString *json = [rs stringForColumn:@"sourceModelStr"];

//

//            model = [[TaskResourceModel alloc] initWithString:json error:nil];

////            return

//        }

[db close];

}

TaskResourceModel *model = [[TaskResourceModel alloc] initWithString:json error:nil];

return model;

}

- (void)creatSqliteTable

{

NSFileManager * fileManager = [NSFileManager defaultManager];

[fileManager fileExistsAtPath:[self sqlitePath]];

//    if (flag == NO) {

// create it

FMDatabase * db = [FMDatabase databaseWithPath:[self sqlitePath]];

if ([db open]) {

//            NSString *sqlCreateTable =  [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT, '%@' INTEGER, '%@' TEXT)",TABLENAME,ID,NAME,AGE,ADDRESS];

//            BOOL res = [db executeUpdate:sqlCreateTable];

NSString * sql = @"CREATE TABLE IF NOT EXISTS 'TaskSource' ('sourceId' TEXT, 'sourceModelStr' TEXT)";

BOOL res = [db executeUpdate:sql];

if (!res) {

//                debugLog(@"error when creating db table");

} else {

//                debugLog(@"succ to creating db table");

}

[db close];

} else {

//            debugLog(@"error when open db");

}

//    }

}

+ (void)deleteAllSqliteData

{

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString * doc = documentPath;

//    NSString *userSqlitePath = [NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_qq.sqlite"];

//    User *user = [[User alloc] getUserInformation];

//    NSString * wcPath = [doc stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_wc.sqlite"]];

//    NSString * sinaPath = [doc stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_sina.sqlite"]];

//    NSString * qqPath = [doc stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@",user.userAccountId,@"shopTaskResource_qq.sqlite"]];

//    FMDatabase * db = [FMDatabase databaseWithPath:wcPath];

//    if ([db open]) {

//        NSString *sql = [NSString stringWithFormat:@"delete from TaskSource "];

//        //        NSString * sql = @"select * from user";

//        BOOL res = [db executeUpdate:sql];

//        if (!res) {

//            NSLog(@"error when delete db table");

//        } else {

//            NSLog(@"success to delete db table");

//        }

//        [db close];

//    }

//

//    FMDatabase * sinaDb = [FMDatabase databaseWithPath:sinaPath];

//    if ([sinaDb open]) {

//        NSString *sql = [NSString stringWithFormat:@"delete from TaskSource "];

//        //        NSString * sql = @"select * from user";

//        BOOL res = [sinaDb executeUpdate:sql];

//        if (!res) {

//            NSLog(@"error when delete db table");

//        } else {

//            NSLog(@"success to delete db table");

//        }

//        [sinaDb close];

//    }

//

//    FMDatabase * qqDb = [FMDatabase databaseWithPath:qqPath];

//    if ([qqDb open]) {

//        NSString *sql = [NSString stringWithFormat:@"delete from TaskSource "];

//        //        NSString * sql = @"select * from user";

//        BOOL res = [qqDb executeUpdate:sql];

//        if (!res) {

//            NSLog(@"error when delete db table");

//        } else {

//            NSLog(@"success to delete db table");

//        }

//        [qqDb close];

//    }

//

//    NSString *purchasePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

//    NSString * doc = documentPath;

NSString * purchasePath = [documentPath stringByAppendingPathComponent:@"taskResource.sqlite"];

//    FMDatabase * purchaseDb = [FMDatabase databaseWithPath:purchasePath];

//    if ([purchaseDb open]) {

//        NSString *sql = [NSString stringWithFormat:@"delete from TaskSource "];

//        //        NSString * sql = @"select * from user";

//        BOOL res = [purchaseDb executeUpdate:sql];

//        if (!res) {

//            NSLog(@"error when delete db table");

//        } else {

//            NSLog(@"success to delete db table");

//        }

//        [purchaseDb close];

//    }

NSFileManager * fileManager = [NSFileManager defaultManager];

////    if ([fileManager fileExistsAtPath:wcPath]){

//        NSError *error;

//        [fileManager removeItemAtPath:wcPath error:&error];

////        NSLog(@"-------:%@",error);

////    }

////    if ([fileManager fileExistsAtPath:sinaPath]){

//        [fileManager removeItemAtPath:sinaPath error:nil];

////    }

////    if ([fileManager fileExistsAtPath:qqPath]){

//        [fileManager removeItemAtPath:qqPath error:nil];

////    }

////    if ([fileManager fileExistsAtPath:purchasePath]){

[fileManager removeItemAtPath:purchasePath error:nil];

//    }

}

FMDB数据库中的一些操作的更多相关文章

  1. MySQL 数据库中的基础操作

    数据库中的表操作 1.创建表 表的表名命名规则: -- 数据库表命名规则重要说明: -- (1)数据库表名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线 _ ,可以组合使用; - ...

  2. JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法

    黑马程序员 我们知道,在设计一个Javabean的时候,要把这些BEAN 的数据存放在数据库中的表结构,然而这些数据库中的表直接又有些特殊的关系,例如员工与部门直接有一对多的关系,学生与老师直接又多对 ...

  3. oracle数据库中常见的操作语句(一)

    一 创建表空间 create tablespace lfdc_data logging datafile 'D:\Database\lfdc_data.dbf' size 50m autoextend ...

  4. mongodb 数据库中 的聚合操作

  5. sql 指定数据库中的信息操作

    查是否有该表名 SELECT * FROM sys.objects WHERE name='表名'查表字段的信息select * from syscolumns where id=Object_Id( ...

  6. 图解数据库中的join操作

    1.所有的join都从cross join衍生而来 2.所有join图示 转自Say NO to Venn Diagrams When Explaining JOINs

  7. 数据库中DDL、DML、DCL和TCP概念

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  8. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  9. 数据库mysql的常规操作

    1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...

随机推荐

  1. 基于websocket的jsp与java进行交互

    环境:jdk.18   tomcat-7.0.70 把tomcat中的 两个jir包复制到 注意:最后部署的时候要删除掉这两个jar包 tomcate中已经有了 ebSocket对象的创建和服务器连接 ...

  2. Java Swing事件处理机制

    Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: ...

  3. C#综合揭秘——细说多线程(上)

    引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发. 其中委托的BeginInvoke方法以及回调函数最为常用. 而 I/O线程 ...

  4. ubuntu 系统出错一览

    1.系统升级出错:打开终端输入:sudo apt-get install -f

  5. input覆盖select实现select可写可选择

    1.有时需要一个select选择框,但是对select选择框希望是既可以选择也可以进行输入.下边的代码就是在select选择框上放了一个input框,覆盖在select上面.实现伪装的select效果 ...

  6. [Hadoop入门] - 2 ubuntu安装与配置 hadoop安装与配置

    ubuntu安装(这里我就不一一捉图了,只引用一个网址, 相信大家能力) ubuntu安装参考教程:  http://jingyan.baidu.com/article/14bd256e0ca52eb ...

  7. eclipse常用的字体

    1.consolas 2.Segoe Script 3.Segoe Print 4.Courier New

  8. 知名杀毒软件Mcafee(麦咖啡)个人版 资源汇总兼科普(来自卡饭)

    虽然早已不是用咖啡了,但我也实时关注的咖啡的一举一动,潜水看帖日久,发现小白众多,好多有价值的帖子淹没于帖海当中,甚是惋惜.     我有如下建议      1.咖啡区管理层,能否吧一些优秀的资源教程 ...

  9. 最简单的PHP socket echo server。

    常有人困惑php的socket服务,现在有libevent和多线程了,但是我还是整一个select的 <?php $addr = '0.0.0.0'; $port = 1234; $socket ...

  10. digitalocean

    sudo apt-get install sshifconfigssh 198.211.102.203sudo adduser uernameubuntu装配SSH,支持开启sftp服务 sftp 1 ...