FMDB数据库中的一些操作
#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数据库中的一些操作的更多相关文章
- MySQL 数据库中的基础操作
数据库中的表操作 1.创建表 表的表名命名规则: -- 数据库表命名规则重要说明: -- (1)数据库表名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线 _ ,可以组合使用; - ...
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
黑马程序员 我们知道,在设计一个Javabean的时候,要把这些BEAN 的数据存放在数据库中的表结构,然而这些数据库中的表直接又有些特殊的关系,例如员工与部门直接有一对多的关系,学生与老师直接又多对 ...
- oracle数据库中常见的操作语句(一)
一 创建表空间 create tablespace lfdc_data logging datafile 'D:\Database\lfdc_data.dbf' size 50m autoextend ...
- mongodb 数据库中 的聚合操作
- sql 指定数据库中的信息操作
查是否有该表名 SELECT * FROM sys.objects WHERE name='表名'查表字段的信息select * from syscolumns where id=Object_Id( ...
- 图解数据库中的join操作
1.所有的join都从cross join衍生而来 2.所有join图示 转自Say NO to Venn Diagrams When Explaining JOINs
- 数据库中DDL、DML、DCL和TCP概念
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...
- 涂抹mysql笔记-数据库中的权限体系
涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...
- 数据库mysql的常规操作
1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...
随机推荐
- ios app 支持 ipv6-only
最近苹果公司发布声明:自今年6月1日开始,所有提交至苹果App Store的应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准. 那么问题来了,目前的app是否支持ip ...
- table合并单元格colspan和rowspan .
colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显 ...
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...
- virtualbox macosx10.9改变分辨率方法
VBoxManage setextradata "osx10.9" VBoxInternal2/EfiGopMode 5 VBoxManage setextradata " ...
- 【bzoj1023】仙人掌图
[bzoj1023]仙人掌图 题意 给一棵仙人掌,求直径. \(n\leq 100000\) 分析 分析1:[Tarjan]+[环处理+单调队列优化线性dp]+[树形dp] 分开两种情况处理: ①环: ...
- setInterval小问题
先看下面代码: for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i) }, 1000); } 运行效果是 输 ...
- validate插件:验证密码没有空格 用户名是5-10位 至少包含数字和大小写字母中的两种字符
//校验密码是否含有空格 jQuery.validator.addMethod("notblank", function(value, element) { var pwdblan ...
- 2.2 利用项目模板创建ASP.NET MVC项目
1.启动VS2012,点击“文件|新建|项目”. 2.在新建项目的窗口中,选择ASP.NET MVC 4应用程序. 3.在新ASP.NET MVC 4项目窗口中的“选择模板”列表中选择“基本”模板,在 ...
- [Java] 获取本月周次和日期时间段信息
package com.wdcloud.monitoring.common; import java.text.SimpleDateFormat; import java.util.ArrayList ...
- Java 集合系列 14 hashCode
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...