上节介绍了用系统自带的C语言库操作SQLite的方法,比较繁琐,使用FMDB会大幅度简化,并且是面向对象的,使用十分方便。

使用步骤如下:

先从github下载FMDB框架,然后把它导入工程。

①导入libsqlite3.0.dylib库。

②导入主头文件FMDatabase.h。

③创建数据库对象,传入路径,打开数据库,如果数据库不存在会被创建。

NSString *sqlitePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"test1.sqlite"];
FMDatabase *db = [FMDatabase databaseWithPath:sqlitePath];
[db open];

④查询操作使用executeQuery:方法,其他操作使用executeUpdate:方法。

例如创建表格和插入数据都是使用Update。

需要注意的是OC字符串以%@出现在SQL语句中不用单引号包括,否则会使得存入的数据成为?。

// 建表
[db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_product (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, price real);"];
// 插入数据
// 注意如果使用OC字符串%@,不用单引号
[db executeUpdateWithFormat:@"INSERT INTO t_product (name,price) values (%@,%d)",[NSString stringWithFormat:@"饮料%d",arc4random_uniform(10000)],arc4random_uniform(100)];

⑤查询操作通过Query,拿到结果集,结果集可以看作迭代器,调用next属性到达下一个元素,当前位置可以取出元素,如下:

// 查询数据
FMResultSet *set = [db executeQuery:@"SELECT * FROM t_product"];
while (set.next) {
NSString *name = [set stringForColumn:@"name"];
double price = [set doubleForColumn:@"price"];
NSLog(@"%@ %f",name,price);
}

(一一四)使用FMDB操作SQLite数据库的更多相关文章

  1. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  2. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

  3. Electron中使用sql.js操作SQLite数据库

    推荐sql.js——一款纯js的sqlite工具. 一.关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite ...

  4. C#操作SQLite数据库增、删、改、查 欢迎转载

    C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...

  5. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  6. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  7. EF6操作Sqlite数据库的项目兼容性问题

    vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白)   但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...

  8. EF操作sqlite数据库时的项目兼容性问题

    问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...

  9. JDBC访问及操作SQLite数据库

    SQLite 是一个开源的嵌入式关系数据库,其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保SQLite的二进 ...

随机推荐

  1. 2015 ICL, Finals, Div. 1 Ceizenpok’s formula(组合数取模,扩展lucas定理)

    J. Ceizenpok’s formula time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  2. [Noi2013]矩阵游戏

    来自FallDream的博客,未经允许,请勿转载,谢谢. 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储).她生成的这个矩阵满足一个神奇的性质:若用F[i ...

  3. Java多线程基础总结

    一.线程和进程关系 二.创建方式1.继承Thread类,重写run方法2.实现Runable接口,重写run方法3.使用匿名内部类 三.API接口start()currentThread() 获取当前 ...

  4. 如何理解Spring AOP

    什么是AOP? AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP允 ...

  5. 四种常用IO模型

    1) 同步阻塞IO(Blocking IO)2) 同步非阻塞IO(Non-blocking IO)3) IO多路复用(IO Multiplexing)4) 异步IO(Asynchronous IO) ...

  6. (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法以及SQL语句中日期格式的表示(#).('')在Delphi中进行字符变量连接相加时单引号用('' ...

  7. python2.7练习小例子(一)

        1)题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少?     程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的 ...

  8. SQL AND和OR求值顺序

    假如需要列出价格为10美元及以上,且由DLL01或BRS01制造的所有产品.下面的SELECT语句使用组合的AND和OR操作符建立了一个WHERE子句: ; 分析▼ 请看上面的结果.返回的行中有4行价 ...

  9. 使用mybatis注解@Options实现添加记录时返回主键值

    官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后 ...

  10. select动态绑定vue.js

    <select v-model="selected"> <option v-for="option in options" v-bind:va ...