zoukankan      html  css  js  c++  java
  • 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】

  • 相关阅读:
    [转] Vue + Webpack 组件式开发(练习环境)
    [转] 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
    [转] Redux入门教程(快速上手)
    [转] 前端数据驱动的价值
    [转] React风格的企业前端技术
    [转] 对Array.prototype.slice.call()方法的理解
    [转] webpack之plugin内部运行机制
    [转] 静态资源的分布对网站加载速度的影响/浏览器对同一域名下并发加载资源数量
    Mysql 版本号、存储引擎、索引查询
    linux 查看CPU、内存、磁盘信息命令
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5373694.html
Copyright © 2011-2022 走看看