• FMDB线程安全


       //打开数据库 如果没有就创建
        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"data.sqlite"];
        //创建数据库的队列
        FMDatabaseQueue *dataBaseQ = [FMDatabaseQueue databaseQueueWithPath:path];
        self.dataBaseQ = dataBaseQ;
        [dataBaseQ inDatabase:^(FMDatabase *db) {
           
            BOOL success = [db open];
            if (success) {
                NSLog(@"数据库创建成功!");
                //2.创建表
                NSString *str = @"CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, score REAL NOT NULL)";
                if ([db executeUpdate:str]) {
                    NSLog(@"表创建成功!");
                }else{
                    NSLog(@"创建表失败!");
                }
            }else{
                NSLog(@"数据库创建失败!");
            }

        }];

     [self.dataBaseQ inDatabase:^(FMDatabase *db) {
            //3.增加 数据 (100条 数据随机)
            for (int i = 0; i <100; i++) {
                
                NSString *strName = [NSString stringWithFormat:@"8mingyeuxin-%d",i];
                
                NSString *sqlStr = [NSString stringWithFormat:@"INSERT INTO t_student (name ,score)VALUES('%@',%.02f)",strName,arc4random_uniform(1000)/10.0];
                
                //执行 //非查询语句  执行的方法
                BOOL success =  [db executeUpdate:sqlStr];
                if (success) {
                    NSLog(@"添加成功!");
                }else{
                    NSLog(@"添加失败!");
                }
                
            }

        }];

     [self.dataBaseQ inDatabase:^(FMDatabase *db) {
           
            NSString *strSql =  @"SELECT * FROM t_student WHERE score > 60.0 ORDER BY score DESC;";
            //查询语句  执行的方法
            FMResultSet *set =  [db executeQuery:strSql];
            
            while ([set next]) {
                //name
                //NSString *name = [set stringForColumnIndex:1];
                NSString *name = [set stringForColumn:@"name"];
                //score
                CGFloat score = [set doubleForColumn:@"score"];
                
                NSLog(@"name = %@  score = %f",name,score);
            }

            
        }];

  • 相关阅读:
    运行从别处复制过来的linux可执行程序
    查看linux服务器版本
    编码问题
    Programmer Dvorak键盘布局
    Ubuntu下安装JDK图文解析
    数据结构和算法设计专题之---24点游戏(穷举法和递归法)
    数据结构和算法设计专题之---单链表的逆序
    Android中实现静态的默认安装和卸载应用
    J2EE学习篇之--JQuery技术详解
    MyEclipse6.0中使用aptana插件,添加jquery提示功能
  • 原文地址:https://www.cnblogs.com/it-k-50/p/6093309.html
Copyright © 2020-2023  润新知