当前位置: 传客网 > SQLite - FMDB基本使用

SQLite - FMDB基本使用

2016-12-01 作者:real小辉侠

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进行编程,

  • 证券总结 之 宏观基本面

    【前言】价值投资最重要的三件事情是:不要亏损,不要亏损,不要亏损。所以只在低位买入。(原理略)同一国家的股市/债市,属性相近的国际大宗商品,类内价格趋势相似。该类内趋势由宏观基本面驱动。宏观基本面包括地区级别(甚至是全球级别)的经济、政策现

  • 红周一奠定反弹技术基础 A股基本面发生四大变化

    红周一奠定反弹技术基础A股基本面发生四大变化2016年03月15日02:43来源:编辑:东方财富网【红周一奠定反弹技术基础A股基本面发生四大变化】量能上看,昨日两市共成交金额5039亿元,成交量出现放大,较上一个交易日的3045亿元增加近2

  • 萧君点金:红周一奠定反弹技术基础 A股基本面发生四大变化

    【红周一奠定反弹技术基础A股基本面发生四大变化】量能上看,昨日两市共成交金额5039亿元,成交量出现放大,较上一个交易日的3045亿元增加近2000亿元,量能放大了66%。资金流向显示资金相对净流入,这将有助于市场再度冲高。周一市场放量基本

  • 掌握 Ajax,第 2 部分: 使用 javascript 和 Ajax 发出异步请求

    转载于IBM中国在Web请求中使用XMLHttpRequest级别:中级BrettMcLaughlin,作家,编辑,O'ReillyMediaInc.2006年2月16日多数Web应用程序都使用请求/响应模型从服务器上获得完整的HTML页面

  • JScript、VBScript 使用消息框、对话框 -- 脚本语言

    JScript的消息框的使用-------------------------------------使用警告、提示和确认可以使用警告、确认和提示消息框来获得用户的输入。这些消息框是window对象的接口方法。由于window对象位于对象层

  • lnmp 环境下 使用phalcon 搭建博客 遇到的Volt directory can't&n

    在本地搭建的博客框架使用git远程仓库保存文件自己搭建lnmp服务器环境问题多多首先报了Voltdirectorycan'tbewritten这个问题在网上查了好多都说是权限不足的问题因为我用的nginx+php-fpm使用nobody用户

  • kernel PCA的基本推导

    要学习kernelPCA就要先从基本的理论入手:通过上面两篇PCA的介绍我想对于基本的理论推导和几何物理意义应该比较清楚了。下面就根据别人的博客和文章的基础上简要的推导下kernelPCA以及PCA。应用上给出一个小程序。由于我不是数学专业

  • 持续更新:苹果入门级知识 中文 使用说明书 越狱教程 闪退补丁 同步助手使用方法 iphone 蜂窝数设置

    不会使用,请先不要急,看完你就会了.使用苹果机子请先下载itunes(必备的)下载地址:http://www.apple.com.cn/itunes/download/附加免费itunes帐号申请方法http://blog.sina.com

返回
顶部