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

  • 相关阅读:
    《链队列---队列的链式表示和实现》
    《栈的应用_版本1.2(实现了可以在一次运行后进行多次操作)》
    《栈的应用_版本1.1(实现了如何十进制转十六进制)》
    《栈的应用 版本1.0》
    《栈的基本操作》
    《单链表练习》
    hdu5887 Herbs Gathering
    CF198 div1 D
    hdu5893 List wants to travel
    hdu5556 Land of Farms
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5373694.html
Copyright © 2020-2023  润新知