iOS: 学习笔记, 使用FMDatabase操作sqlite3

使用FMDatabase操作sqlite3数据库非常简单和方便

 1 //

 2 //  main.m

 3 //  iOSDemo0602_sqlite3

 4 //

 5 //  Created by yao_yu on 14-6-2.

 6 //  Copyright (c) 2014年 yao_yu. All rights reserved.

 7 //

 8 

 9 #import <UIKit/UIKit.h>

10 #import "FMDatabase.h"

11 

12 void test01();

13 BOOL isfile(NSString *path);

14 BOOL isdir(NSString *path);

15 

16 int main(int argc, char * argv[])

17 {

18     @autoreleasepool {

19         test01();

20     }

21     return 0;

22 }

23 

24 void test01()

25 {

26     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

27     NSString *docpath = [paths objectAtIndex:0];

28     NSString *dbpath = [docpath stringByAppendingPathComponent:@"YY/Data2"];

29 //    NSLog(@"%@", dbpath);

30     if (!isdir(dbpath)) {

31         NSFileManager *fileManager = [NSFileManager defaultManager];

32         [fileManager createDirectoryAtPath:dbpath withIntermediateDirectories:YES attributes:nil error:nil];

33     }

34     

35     NSString *dbfile = [dbpath stringByAppendingPathComponent:@"data.db"];

36     NSLog(@"%@", dbfile);

37     

38     //初始化

39     FMDatabase *db = [FMDatabase databaseWithPath:dbfile];

40     //打开数据库

41     [db open];

42     

43     //删除表

44     [db executeUpdate:@"drop table persons"];

45     

46     //添加表

47     [db executeUpdate:@"create table persons(id, name)"];

48     

49     //删除原有数据

50     [db executeUpdate:@"delete from persons"];

51     

52     //使用事务添加数据

53     [db beginTransaction];

54     for(int i=0; i< 10000; i++)

55     {

56         [db executeUpdate:@"insert into persons values(?,?)", [NSString stringWithFormat:@"%d", i], [NSString stringWithFormat:@"第%d", i]];

57     }

58     [db commit];

59     

60     //数据查询

61     FMResultSet *cursor = [db executeQuery:@"select * from persons"];

62     int nCols = cursor.columnCount;

63     while ([cursor next]) {

64         for (int i=0; i<nCols; i++) {

65             printf("%s ", [[cursor stringForColumnIndex:i] UTF8String]);

66         }

67         printf("\n");

68     }

69     cursor = nil;

70     

71     //关闭数据库

72     [db close];

73     

74     //删除数据库测试文件

75     [[NSFileManager defaultManager] removeItemAtPath:dbfile error:nil];

76     

77 }

78 

79 BOOL isfile(NSString *path)

80 {

81     NSFileManager *fileManager = [NSFileManager defaultManager];

82     BOOL isdir = NO;

83     if ([fileManager fileExistsAtPath:path isDirectory: &isdir]) {

84         return isdir == NO;

85     }

86     return NO;

87 }

88 

89 BOOL isdir(NSString *path)

90 {

91     NSFileManager *fileManager = [NSFileManager defaultManager];

92     BOOL isdir = NO;

93     if ([fileManager fileExistsAtPath:path isDirectory: &isdir]) {

94         return isdir == YES;

95     }

96     return NO;

97 }

 

你可能感兴趣的:(database)