SQLite - FMDB基本使用

sqlite fmdb it

Title:SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者。

1. 导入libssqlite3.0.dylib
2. 下载FMDB 然后把src下的文件除了fmdb.m(其实是实例文件)拷贝到supporting files目录下
3. 需要注意的是默认的存放目录是在 ~Documents/目录下 加入db不存在就创建
3. 连接 - 基本操作  - 存入文件  其实直接看fmdb.m上面的例子就可以了,例子写的很全面
#import
#import "FMDatabase.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
       
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                          NSUserDomainMask, YES);
            NSString *documentDirectory = [paths objectAtIndex:0];
            NSString *dbPath = [documentDirectory stringByAppendingPathComponent:
            @"MyDatabase.db"];
            FMDatabase *db = [FMDatabase databaseWithPath:dbPath] ;
            if (![db open]) {
                NSLog(@"can 't open database");
                   return -1;
            }
        NSString *filepath = [[NSBundle mainBundle]pathForResource:@"test" ofType:@"png"];
        //基本操作
        [db executeUpdate:@"CREATE TABLE PersonList (Name text, Age integer, Sex integer,
        Phone text, Address text, Photo blob)"];
        [db executeUpdate:@"INSERT INTO PersonList (Name, Age, Sex, Phone, Address, Photo)
        VALUES (?,?,?,?,?,?)",
        
         @"Jony", [NSNumber numberWithInt:20], [NSNumber numberWithInt:0], @"091234567",
         @"Taiwan, R.O.C", [NSData dataWithContentsOfFile: filepath]];
       FMResultSet *GetColume = [db executeQuery:@"select * from PersonList where age = ?",
       [NSNumber numberWithInt:20]];
        while([GetColume next])
        {
            NSLog(@"columeItem =%@",[GetColume stringForColumn:@"Name"]);
        }
       
        // 文件或图片文件的写入 db
        [db executeUpdate:@"create table blobTable (a text, b blob)"];
        NSData *test = [NSData dataWithContentsOfFile:@"/tmp/pic.png"];
        if (test) {
            [db executeUpdate:@"insert into blobTable (a, b) values (?,?)", @"picpng", test];
           
          FMResultSet  *rs = [db executeQuery:@"select b from blobTable where a = ?", @"picpng"];
            while([rs next]) {
                test = [rs dataForColumn:@"b"];
                [test writeToFile:@"/tmp/pic2.png" atomically:NO];
                system("/usr/bin/open /tmp/pic.png"); //这行就默认使用图片查看器打开了这张图片

                test = [rs dataNoCopyForColumn:@"b"];
                [test writeToFile:@"/tmp/pic_data_no_copy.png" atomically:NO];
                system("/usr/bin/open /tmp/pic_data_no_copy.png");
            }
            else {
                NSLog(@"Could not select image.");
            }
           
            [rs close];
           
        }
        else {
            NSLog(@"Can't find compass image..");
        }
    }
    return 0;
}



相关推荐

  • eBay API账号申请和使用基本步骤 要开始使用eBayAPI,需要如下基本步骤:1.注册开发帐号:https://developer.ebay.com/join/Default.aspx2.选择API类型:eBay有大约6种API开发语言,例如.net和Java的SDKhtt
  • 基本面分析怎么预测黄金白银走势?如何使用基本面进行黄金白银走势预测?   本文将介绍基本面分析为工具,进行白银走势预测。分析用基本面分析法进行白银走势预测,重点分析经济状态、利率、通货膨胀、公司收益、公司资产负债表、以及中央银行和政府的相关政策。  当基本面分析法进行白银走势预测时,通常会结合对经济整体方向自
  • [2016全国两会]杨云彦委员:免费领取试用品让老年人免费使用基本药物   原标题:[2016全国两会]杨云彦委员:让老年人免费使用基本药物  荆楚网消息(记者徐芳)"我国老年人目前享有的医疗保障水平总体不高,尤其是农村老年人,医药费用负担较重,试客网。"3月3日,全国政协委员、湖北省卫生计生委主任杨云彦建议,
  • 杨云免费领取试用品彦:让老年人免费使用基本药物,积极应对人口老龄化 长江云报道(湖北之声记者周翔、李丽)我国第十三个五年规划纲要草案提出,积极应对人口老龄化,免费试用。今年的政府工作报告对老年人问题也做出了突出强调。在今年的全国两会上,全国政协委员、省卫计委主任杨云彦建议建立老年人基本药物免费政策,积极应对
  • Matlab使用基本方法2009-11-30 1.打开文件用a=fopen('C:\DocumentsandSettings\郑伟\桌面\handdat_62.dat','r');2.读文件用b=fread(a,[200,200],'*uint8');//最后一个是数据形式3.关闭文件
  • 【phoneGap学习】sqlite 使用 本来想现在开源产品这么多,使用sqlite应该很简单,却走了不少弯路,特把可以成功过程在这里记录一下:插件网址:https://github.com/litehelpers/Cordova-sqlite-storage安装步骤使用cordo
  • C# 中 SQLite 使用介绍 关于SQLiteSQLite是一款轻型的嵌入式的遵守ACID的关系型数据库管理系统,诞生已有15个年头了。随着移动互联的发展,现在得到了更广泛的使用。在使用SQLite之前,我们势必要先了解它一些“个性”的地方。下面是它的一些特点:1、自包
  • C# 使用sqlite 轻量级数据库 一,准备工作:sqlite3.exe下载地址:http://www.sqlite.org/download.html下载"sqlite-shell-win32-x86-3070800.zip"就OK了PrecompiledBinariesF
  • QuickTest Professional的基本使用方法 1QTP基本功能的使用QTP的基本功能包括两大部分:一部分是提供给初级用户使用的关键字视图;另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图。但是,并没有严格的区分,在实际的自动化测试项目中完全可以两者结合着使用
  • Hdtune的正确使用方法 --- 判断硬盘是否故障,存在数据坏道,逻辑故障的常用基本软件!! HDTune是一款极佳的硬盘检测工具,它支持了以下主要功能:1.基准测试:检测硬盘的传输性能2.信息:显示硬盘的详细信息3.健康:通过使用SMART来检查硬盘的健康状态4.错误扫描:扫描硬盘表面的错误5.温度显示另外,HDTune还同样可以
  • 阿尔滨失联外援20号归队 欠薪基本补齐注册已定 1月7日报道:大连阿尔滨正在昆明海埂基地进行冬训,此前与球队失联的巴西外援布鲁诺,已经确定将于本月20日于大部队汇合。此外,阿尔滨的欠薪问题基本得到解决,在1月15日前顺利注册已无大碍。大连阿尔滨在本月4日从大连启程,前往昆明海埂基地冬训。
  • 第五十八讲   使用Java和Scala在IDE中开发DataFrame实战 第五十八讲使用Java和Scala在IDE中开发DataFrame实战1,使用Java开发DataFrame实战2,使用Scala开发DataFrame实战一:使用Java开发DataFrame实战大多数都是使用DataFrame进行编程,

你的评论

就没有什么想说的吗?

最新博客

关于我们 免责声明 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X