FMDB中的数据处理
[self.db executeUpdate:@"create table test (a text, b text, c integer, d double, e double)"];
我们创建一个表格text,可以很清楚的看到其字段对应的数据类型:
数据类型:
TEXT:字符串类型。
INTEGER:整型。
REAL:浮点型(double、float)。
BLOB:二进制数据

关于 ‘?’:FMDB中 ‘?’ 表示对象占位符,不能用来占位基本数据类型!!
那么我们插入数据的时候,可以先把浮点型等转为对象类型,再用 ‘?’ 占位,插入数据。
e.g.
int i = ;
while (i++ < ) {
[self.db executeUpdate:@"insert into test (a, b, c, d, e) values (?, ?, ?, ?, ?)" ,
@"hi'",
[NSString stringWithFormat:@"number %d", i],
[NSNumber numberWithInt:i],
[NSDate date],
[NSNumber numberWithFloat:2.2f]];
}
[self.db commit];
查询结果:
FMResultSet *rs = [self.db executeQuery:@"select rowid,* from test where a = ?", @"hi'"];
while ([rs next]) {
NSLog(@"%d %@ %@ %@ %@ %f %f",
[rs intForColumn:@"c"],
[rs stringForColumn:@"b"],
[rs stringForColumn:@"a"],
[rs stringForColumn:@"rowid"],
[rs dateForColumn:@"d"],
[rs doubleForColumn:@"d"],
[rs doubleForColumn:@"e"]);
}
打印:
-- ::30.629 学习数据库[:] number hi' 1 2016-04-10 03:39:30 +0000 1460259570.625429 2.200000
-- ::30.630 学习数据库[:] number hi' 2 2016-04-10 03:39:30 +0000 1460259570.625830 2.200000
-- ::30.630 学习数据库[:] number hi' 3 2016-04-10 03:39:30 +0000 1460259570.625919 2.200000
-- ::30.631 学习数据库[:] number hi' 4 2016-04-10 03:39:30 +0000 1460259570.625952 2.200000
-- ::30.631 学习数据库[:] number hi' 5 2016-04-10 03:39:30 +0000 1460259570.625980 2.200000
-- ::30.631 学习数据库[:] number hi' 6 2016-04-10 03:39:30 +0000 1460259570.626003 2.200000
-- ::30.631 学习数据库[:] number hi' 7 2016-04-10 03:39:30 +0000 1460259570.626023 2.200000
-- ::30.631 学习数据库[:] number hi' 8 2016-04-10 03:39:30 +0000 1460259570.626044 2.200000
-- ::30.632 学习数据库[:] number hi' 9 2016-04-10 03:39:30 +0000 1460259570.626063 2.200000
-- ::30.632 学习数据库[:] number hi' 10 2016-04-10 03:39:30 +0000 1460259570.626083 2.200000
总结:我们创表时指定字段a为整型,当我们插入数据时可以将其包裹为对象插入数据库,并不影响我们的插入结果!!而且针对对象类型,占位符最好使用 '?',因为其默认已经添加了单引号 ''。
尊重作者劳动成果,转载请注明: 【kingdev】
FMDB中的数据处理的更多相关文章
- Struts中的数据处理的三种方式
Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() ...
- ajax请求返回数据,模板中的数据处理
/*ajax请求返回数据,模板中的数据处理*/ function QueryGameAsset(){ var new_start_time=$('#new_start_time').val();//开 ...
- R语言中的数据处理包dplyr、tidyr笔记
R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了 ...
- Delphi中ComPort通信中的数据处理
源: Delphi中ComPort通信中的数据处理
- FMDB中 databaseWithPath 的使用问题
阅读fmdb的源码文件(下载地址http://github.com/ccgus/fmdb)会发现下面一段注释,里面提到的创建数据库的方法也在很多博客中被引用,但是跑代码的时候发现,文件并不会像文档中所 ...
- Hadoop 1.0 和 2.0 中的数据处理框架 - MapReduce
1. MapReduce - 映射.化简编程模型 1.1 MapReduce 的概念 1.1.1 map 和 reduce 1.1.2 shufftle 和 排序 MapReduce 保证每个 red ...
- python 机器学习中的数据处理学习记录
在机器学习中,选择合适的算法固然重要,但是数据的处理也同样重要.通过对数据的处理,能提高计算效率,提高预测识别精确度等等 以下记录下一些数据处理的方法 一.处理缺失值 对于数据集中有缺失值的,粗暴的方 ...
- FMDB中常用SQL使用
大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做“sqlite database brows ...
- 海康威视实时预览回调PS流用EasyRTMP向RTMP服务器推流中视频数据处理的代码
在上一篇方案<EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)>我们介绍了将海康安防摄像机进行互联网直播的整体方案流程,其中有一个 ...
随机推荐
- jzoj6005. 【PKUWC2019模拟2019.1.17】数学 (生成函数+FFT+抽代+高精)
题面 题解 幸好咱不是在晚上做的否则咱就不用睡觉了--都什么年代了居然还会出高精的题-- 先考虑如果暴力怎么做,令\(G(x)\)为\(F(n,k)\)的生成函数,那么不难发现\[G^R(x)=\pr ...
- try catch finally的执行顺序学习
try catch finally的执行顺序学习 首先执行try,如果有异常执行catch,无论如何都会执行finally,当有return以后,函数就会把这个数据存储在某个位置,然后告诉主函数, ...
- Zookeeper入门看这篇就够了!!
Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名 ...
- excel 公式2列合并
=A2&"="&C2 ="UPDATE comm_department SET parent_id='"&D2&"' ...
- CC14:集合栈
题目 请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈.该数据结构应支持与普通栈相同的push和pop操作. 给定一个操作序列int[] ...
- BZOJ 1123 && Luogu P3469 [POI2008]BLO-Blockade 割点+乘法原理
想了半天式子...最后在邓大师的帮助下想出此题....QWQ我还是太菜了 对于一个非割点,ans+=2*(n-1); 对于一个割点,ans+= #include<cstdio> #incl ...
- JS中比较的数值如何比较大小
<script type="text/javascript"> function check_num(){ var num=document.getElementByI ...
- 部署WebService服务碰到的一个小问题
在部署WebService服务到IIS上之后,发现一直无法在浏览器访问到编写的asmx文件,一直提示404或403错误.提示当前访问的文件时脚本文件. 1.首先检查了在IIS上部署WebService ...
- 遍历List集合的方式
遍历List集合的方式有很多,现在举出最常见的三种 List<String> list = new ArrayList<String>(); list.add("a& ...
- Gradle项目构建(1)——Gradle的由来
一.项目自动构建介绍 作为Java的开发者对eclipse都非常熟悉,其实eclipse就是居于ant来构建项目的,我们先来看看为什么需要自动化构建项目. 1.为什么我们要自动化构建项目 可以假设我们 ...