FMDB中的数据处理

1 [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 = 0;
    while (i++ < 20) {
        [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"]);
    }

打印:

2016-04-10 11:39:30.629 学习数据库[12838:1225278] 1 number 1 hi‘ 1 2016-04-10 03:39:30 +0000 1460259570.625429 2.200000
2016-04-10 11:39:30.630 学习数据库[12838:1225278] 2 number 2 hi‘ 2 2016-04-10 03:39:30 +0000 1460259570.625830 2.200000
2016-04-10 11:39:30.630 学习数据库[12838:1225278] 3 number 3 hi‘ 3 2016-04-10 03:39:30 +0000 1460259570.625919 2.200000
2016-04-10 11:39:30.631 学习数据库[12838:1225278] 4 number 4 hi‘ 4 2016-04-10 03:39:30 +0000 1460259570.625952 2.200000
2016-04-10 11:39:30.631 学习数据库[12838:1225278] 5 number 5 hi‘ 5 2016-04-10 03:39:30 +0000 1460259570.625980 2.200000
2016-04-10 11:39:30.631 学习数据库[12838:1225278] 6 number 6 hi‘ 6 2016-04-10 03:39:30 +0000 1460259570.626003 2.200000
2016-04-10 11:39:30.631 学习数据库[12838:1225278] 7 number 7 hi‘ 7 2016-04-10 03:39:30 +0000 1460259570.626023 2.200000
2016-04-10 11:39:30.631 学习数据库[12838:1225278] 8 number 8 hi‘ 8 2016-04-10 03:39:30 +0000 1460259570.626044 2.200000
2016-04-10 11:39:30.632 学习数据库[12838:1225278] 9 number 9 hi‘ 9 2016-04-10 03:39:30 +0000 1460259570.626063 2.200000
2016-04-10 11:39:30.632 学习数据库[12838:1225278] 10 number 10 hi‘ 10 2016-04-10 03:39:30 +0000 1460259570.626083 2.200000

总结:我们创表时指定字段a为整型,当我们插入数据时可以将其包裹为对象插入数据库,并不影响我们的插入结果!!而且针对对象类型,占位符最好使用 ‘?‘,因为其默认已经添加了单引号 ‘‘。

尊重作者劳动成果,转载请注明: 【kingdev】

时间: 2024-11-07 22:04:49

FMDB中的数据处理的相关文章

fmdb中databasequeue的使用,避免死锁

在ios开发中,大家很可能会用到这样一个数据库封装:fmdb. 该封装相比coredata来说有他自己的优势:接口清晰,设计简单,符合规范,多线程情况下使用databasequeue来进行操作也很方便,还可以在其基础上再进行一些封装来方便项目的使用. 正是因为fmdb的简单性,所以很容易被误用.在我们的项目开发中就遇到了一例(我们项目中的代码进行了封装,我这里将其还原,写示例来作说明): [queue inTransaction:^(FMDatabase *db, BOOL *rollback)

ajax请求返回数据,模板中的数据处理

/*ajax请求返回数据,模板中的数据处理*/ function QueryGameAsset(){ var new_start_time=$('#new_start_time').val();//开始时间 var new_end_time=$('#new_end_time').val();//结束时间 if(!new_start_time||!new_end_time){ alert("时间不能为空"); return false; } $.ajax({ url:'/Statisti

Struts中的数据处理的三种方式

Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() throws Exception { // 1. 请求数据封装: 2. 调用Service处理业务逻辑,拿到结果数据 3. 数据保存到域中 /* * // Struts中对数据操作,方式1: 直接拿到ServletApi, 执行操作 HttpServletRequest request = Serv

Oracle Coherence中文教程二十四:在高速缓存中的数据处理

在高速缓存中的数据处理 coherence提供了理想的基础设施建设数据网格服务和客户端和基于服务器的应用程序使用数据网格.在一个基本的层面上,相干可以在大量的服务器在网格管理一个巨大的数据量,它可以提供接近零延迟访问该数据,它支持跨数据的并行查询中的map-reduce方式;它支持数据库和EIS系统,作为该数据的记录系统的集成.此外,Coherence提供一些服务,这是建立有效的数据网格的理想选择. 本章包含以下各节: 有针对性的执行 并行执行 基于查询的执行 数据网格范围内执行 代理针对性,并

FMDB中常用SQL使用

大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做"sqlite database browser"的工具来可视化的管理数据库. 然后把数据库文件加入到Resource目录下,然后通过以下代码来安装数据库,也就是拷贝到doc目录下: [cpp] view plain copy //install file to doc dir - (BOOL)installFileOfName:(

Hadoop 1.0 和 2.0 中的数据处理框架 - MapReduce

1. MapReduce - 映射.化简编程模型 运行原理: 2. Hadoop V1 中的 MapReduce 的实现 Hadoop 1.0 指的是版本为Apache Hadoop 0.20.x.1.x或者CDH3系列的Hadoop,内核主要由HDFS和MapReduce两个系统组成,其中,MapReduce是一个离线处理框架,由编程模型(新旧API).运行时环境(JobTracker和TaskTracker)和 数据处理引擎(MapTask和ReduceTask)三部分组成. 2.1 Had

jquery的ajax请求中的数据处理

前台(1)js发出请求的ajax方法 1 $.ajax({ 2 url: "*.do", //url是要请求的路径 3 type: "get", //type是http请求的类型,值是"get"或者"post" 4 data: "key=" + value+ "&key=" + value+ "&key=" + value, /* data是请求时提交

1.关于QT中json数据处理和密码md5加密

 新建一个Qt空项目 17Json.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += widgets gui MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget>   class MyWidget : public QWidget {     Q_OBJECT public:     explicit MyWidget(QWidget

FMDB在Swift中的基本使用

?什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API ?FMDB的优点 使用起来更加面向对象,省去了很多麻烦.繁杂的C语言代码 提供了多线程数据库的操作方法,有效的防止数据混乱 FMDB有三个主要的类 ?FMDatabase 一个FMDBDatabase对象就代表一个单独的SQLite数据库 用来执行SQL语句 ?FMResultSet 使用FMDatabase执行查询后的结果集 ?FMDatabaseQueue 用于在多线程中查询