• 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】

  • 相关阅读:
    telnet命令测试端口连接是否正常, telnet不是内部或外部命令的方案
    Linux常用命令
    nginx的反向代理的优势,特点于原理(一)
    linux操作系统中的常用命令以及快捷键(一)
    Centos网卡名称命名
    Centos第一次使用配置IP地址
    Linux环境下交叉编译器安装及运行
    jupyter更换路径
    python3实现在二叉树中找出和为某一值的所有路径
    使用 SQL 服务器时,"评估期已过期"错误消息
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5373694.html
Copyright © 2020-2023  润新知