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直播推流(附源码)>我们介绍了将海康安防摄像机进行互联网直播的整体方案流程,其中有一个 ...
随机推荐
- jQuery EasyUI/TopJUI创建树形表格下拉框
jQuery EasyUI/TopJUI创建树形表格下拉框 第一种方法(纯HTML创建) <div class="topjui-row"> <div class= ...
- K.河北美食
链接:https://ac.nowcoder.com/acm/contest/903/K 题意: icebound最喜欢吃河北菜,于是他想要大厨做一桌河北菜宴请宾客.icebound购买了一些食材,并 ...
- JavaScript引擎基本原理: 优化prototypes
原文链接: JavaScript engine fundamentals: optimizing prototypes 这篇文章介绍了一些JavaScript引擎常用的优化关键点, 并不只是Bened ...
- NET Core & Entity Framework Core
ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5) 本文是ABP官方文档翻译版,翻译基于 ...
- AD17笔记
1 铺铜修改后自动重铺设置:在最右下角
- JAVA---spring-boot入门(图文教程)
Spring Boot可以轻松创建独立的,生产级的基于Spring的应用程序,他的特征: 1.创建独立的Spring应用程序 2.直接嵌入Tomcat,Jetty或Undertow(无需部 ...
- 使用git和github管理项目代码
以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...
- IOS使用固定定位遇到的问题
近日需要实现移动端页面额外功能按钮,即点击加号弹出点赞与留言功能,通常这个按钮都会固定于页面的右下角,首先就想到使用固定定位来实现. 但是在测试时我们发现,在IOS中,当系统键盘弹出时,fixed会失 ...
- dedecms会员中心编辑器无法上传图片
文件:include\dialog\config.php 找到这行代码: $cuserLogin = new userLogin(); 把上面代码下面的这些注释掉: if($cuserLogin-&g ...
- Android的bitmap和优化
内存管理是个永恒的话题! 内存溢出:就是分配的内存不足以放下数据项序列.如在一个域中输入的数据超过了它的要求就会引发数据溢出问题,多余的数据就可以作为指令在计算机上运行.就是你要求分配的内存超出了系统 ...