iOS 三方库fmdb 的使用

摘要:
,?,?)",@"Gaius",[NSNumbernumberWithInteger:100],[NSDatadataWithContentsOfFile:@"/Users/shijieli/Desktop/testPicture.jpg"]];if(res){NSLog(@"successtoinsertdbtable");}else{NSLog(@"errorwheninsertdbtable");}[dbclose];}if([dbopen]){//查询FMResultSet*rs=[dbexecuteQuery:@"SELECT*FROMCeasar"];while([rsnext]){NSString*name=[rsstringForColumn:@"Name"];intage=[rsintForColumn:@"Age"];NSData*photo=[rsdataForColumn:@"Photo"];NSLog(@"name=%@,age=%d",name,age);BOOLisCreate=[[NSFileManagerdefaultManager]createFileAtPath:@"/Users/shijieli/Desktop/car.jpg"contents:photoattributes:nil];if(!isCreate){NSLog(@"******createfailure");}}[dbclose];}//if([dbopen]){//修改数据//NSString*temp=[NSStringstringWithFormat:@"UPDATE%@SET%@='%@'WHERE%@='%@'",@"Ceasar",@"Name",@"hao",@"Age",[NSNumbernumberWithInt:100]];//BOOLres=[dbexecuteUpdate:temp];//if(!res){//NSLog(@"errorwhenupdatedbtable");//}else{//NSLog(@"successtoupdatedbtable");//}////[dbclose];////}//if([dbopen]){//清除表//BOOLres=[dbexecuteUpdate:@"DELETEFROMCeasar"];//if(!

使用fmdb 做本地数据的存储非常方便,

1. github 上搜索fmdb 下载压缩包 导入到工程中 (如果你的mac 有cocoapod 也可以直接通过cocoapod 添加)

2. 以下代码是通过fmdb 多数据库的各种操作,其中有几点需要注意:(1). 程序中 Ceasar 是表名 (2). 修改数据库数据 提前准备字符串时 值 要用单引号括起来 否则会出错 :NSString *temp = [NSString stringWithFormat:@"UPDATE %@ SET %@ = '%@' WHERE %@ = '%@'",@"Ceasar",@"Name",@"hao",@"Age",[NSNumber numberWithInt:100]];

NSString *path = @"/Users/shijieli/Desktop/test.sqlite";

FMDatabase *db = [FMDatabase databaseWithPath:path];

if ([db open]) {//创建表

BOOL res = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS Ceasar (Name text, Age integer, Photo blob)"];

if (!res) {

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

} else {

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

}

[db close];

}

if ([db open]) {//添加数据

BOOL res = [db executeUpdate:@"INSERT INTO Ceasar (Name, Age, Photo) VALUES (?, ?, ?)",@"Gaius",[NSNumber numberWithInteger:100],[NSData dataWithContentsOfFile:@"/Users/shijieli/Desktop/testPicture.jpg"]];

if (res) {

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

} else {

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

}

[db close];

}

if ([db open]) {//查询

FMResultSet * rs = [db executeQuery:@"SELECT * FROM Ceasar"];

while ([rs next]) {

NSString * name = [rs stringForColumn:@"Name"];

int age = [rs intForColumn:@"Age"];

NSData *photo = [rs dataForColumn:@"Photo"];

NSLog(@" name = %@, age = %d", name, age);

BOOL isCreate = [[NSFileManager defaultManager] createFileAtPath:@"/Users/shijieli/Desktop/car.jpg" contents:photo attributes:nil];

if (!isCreate) {

NSLog(@" ****** create failure");

}

}

[db close];

}

// if ([db open]) {//修改数据

// NSString *temp = [NSString stringWithFormat:@"UPDATE %@ SET %@ = '%@' WHERE %@ = '%@'",@"Ceasar",@"Name",@"hao",@"Age",[NSNumber numberWithInt:100]];

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

// if (!res) {

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

// } else {

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

// }

//

// [db close];

//

// }

// if ([db open]) {//清除表

// BOOL res = [db executeUpdate:@"DELETE FROM Ceasar"];

// if (!res) {

// NSLog(@"delete failure");

// }

// }

if ([db open]) {//删除数据

NSString *deleteSql = [NSString stringWithFormat:

@"delete from %@ where %@ = '%@'",

@"Ceasar", @"Name", @"hao"];

BOOL res = [db executeUpdate:deleteSql];

if (!res) {

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

} else {

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

}

[db close];

}

}

免责声明:文章转载自《iOS 三方库fmdb 的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装gnvm (windows下nodejs版本管理工具)SpringBoot + CXF快速实现SOAP WebService(支持Basic Auth)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js(javascript)与ios(Objective-C)相互通信交互

随着苹果SDK的不断升级,越来越多的新特性增加了进来,本文主要讲述从iOS6至今,Native与JavaScript的交互方法 一、UIWebview && iframe && JavaScript  <=iOS6 iOS6原生没有提供js直接调用Objective-C的方式,只能通过UIWebView的UIWebVi...

Doris导数 踏雪扬尘

目录 概述 导入方式 批量删除 Broker Load Routine Load Stream load 概述 Doris现在支持Broker load/routine load/stream load/mini batch load等多种导入方式。spark load主要用于解决初次迁移,大量数据迁移doris的场景,用于提升数据导入的速度。 导...

NSDictionary读取数据类型异常问题.

起因:做网络交互时,经常会使用JSON作为数据的承载体,本来是件好事,但是用多了,发现iOS侧偶尔会出现异常,几经比较发现是服务器给的数据有问题,该给INT的给按照STR给了,服务器能做动态更新,可客户端不行啊,怎么办?NSDictionary读到的是id类型,如果是数字,需要再转换下才可以,出问题就在这里.那解决思路就在这里,在这里增加判断实现用到了以下...

Java后台开发规范

Java后台开发规范 1.Java编程规范 1.1.命名风格 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO 接口类中的方法和属性不要加任何修饰符号,保持代码的简洁性,并加上有效的 Javadoc 注释...

iOS 本地存储四种方法

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍⼀一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提 供encodeWithCoder:和init...

ios-极光推送sdk使用

一、SDK导入 选择1:Cocoapods导入 pod 'JPush' 选择2:手动导入 1、在极光官网下载最新SDK 2、解压压缩包,将Lib下的所有文件复制到工程中 3、增加相关的framework依赖 CFNetwork.framework CoreFoundation.framework CoreTelephony.fra...