zoukankan      html  css  js  c++  java
  • 数据库FMDB

     数据库FMDB

    1.数据库

      存储大量的,结构复杂的数据 

    常用数据库

    (1)Microsoft SQL Server 2000/2008 ,中小企业使用居多

    (2)Oracle 较复杂,大企业

    (3)Myaql 数据库,网站使用多

    (4)sqlite 本地数据库,访问快,简单 ,但功能不齐,小(系统不超过1M),移动端使用

    2.MesaSQlite使用

    (1)新建数据库

    (2)新建数据表

    (3)添加数据

    (4)常用操作

    3.SQL语句

      SQL  -->Structured Query Language

      常用

        create table if not exists ClassInfo(id integer,name varchar(20),age integer,score varchar(20))  //创建

        insert into ClassInfo(id,name,age,score) values (2,'zhao',19,'100')    //添加    

        select *from ClassInfo ;     //查询

         select name from ClassInfo;

         select *from ClassInfo where name = 'zhang';

        select *from ClassInfo where name = 'zhang' and id = '1'     

         select *from ClassInfo order by score desc        //选择后排序(降序)

         select count(*) from ClassInfo           //数据行数

           update ClassInfo set score = '80' where username = 'zhang';       //修改数据

           delete from ClassInfo where id = '2'                 //delete

    4.FMDB开源库使用

       配置:添加FMDB库文件 --> 添加sqlite3.dylib库 --> 头文件#import "FMDatabase.h"

      建立单例类:DatabaseManager 

    @interface DatabaseManager : NSObject
    
    +(id)sharedInstance;
    -(NSArray *)firstLevel;   //获取第一级目录
    
    @end

      //init 打开数据库

    //init
    -(id)init{
    
        if(self = [super init]){
            
            [self openDatabase];   //打开数据库  --> data.sqlite
        }
        return self;
    }
    //openDatabase
    -(void)openDatabase{
    
        NSString *path = [[NSBundle mainBundle] pathForResource:@"data.sqlite" ofType:nil];
        _database = [[FMDatabase alloc] initWithPath:path];
        
        if(!_database.open){
        
            NSLog(@"fail");
        }
    }

      获取数据库第一级目录

        查询用executeQuery:

        其余用executeUpdate:

    //firstLevel
    -(NSArray *)firstLevel{
    
        NSString *sql = @"select *from firstlevel";   //查询firstlevel
        FMResultSet *resultSet = [_database executeQuery:sql];
        NSMutableArray *muarr = [[NSMutableArray alloc] init];
        
        while ([resultSet next]) {
            FirstLevelModel *model = [[FirstLevelModel alloc] init];
            
            model.pid = [resultSet intForColumn:@"pid"];
            model.pname = [resultSet stringForColumn:@"pname"];
            model.pcount = [resultSet intForColumn:@"pcount"];
            
            [muarr addObject:model];
        }
        return muarr;
    }

      ViewController 直接调用单例

    #pragma mark - downloadData
    -(void)downloadData{
    
        DatabaseManager *manager = [DatabaseManager sharedInstance];
        
                for(FirstLevelModel *model in manager.firstLevel){      
                //
                    [_dataArray addObject:model.pname];
                }
        
        [_tableView reloadData];
    }
  • 相关阅读:
    Windbg Call Stack(调用堆栈)窗口的使用
    设置微软符号服务器的又一方法
    windbg是如何搜索符号文件的?
    如何关闭/禁用.NET JIT调试对话框
    EXCEPTION_HIJACK(0xe0434f4e)异常的抛出过程
    异常EXCEPTION_HIJACK(0xe0434f4e)
    Windows WoW64浅析
    在执行一行代码之前CLR做的68件事
    异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)的抛出过程
    异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)
  • 原文地址:https://www.cnblogs.com/wlrBlogs/p/4389214.html
Copyright © 2011-2022 走看看