zoukankan      html  css  js  c++  java
  • FMDatabase 使用

     

        //iPhone应用安全机制

        //沙盒机制:

        //  每个应用所有的数据都放在一个文件夹内, 这个文件夹称为沙盒目录, 这个应用不能访问除了它自己沙盒目录外的其他文件

        //沙盒目录  NSHomeDirectory()

        //  Documents   存储自己的文件

        //  Library     系统存储应用的文件

        //  tmp         临时文件

    NSHomeDirectory() 获取沙盒目录

    FMDatabase

    注:导入 libsqlite3.dylib

        //<0>FMDB库的配置
        
        
        //<1>创建打开数据库
        [self createAndOpenDatabase];
        -(void)createAndOpenDatabase
    {
    
        //  sandbox
        NSString *path = [NSString stringWithFormat:@"%@/Documents/stu.rdb",NSHomeDirectory()];//沙盒
        NSLog(@"path = %@",path);
        //初始化数据
        _database = [[FMDatabase alloc] initWithPath:path];
        //open一定需要执行, 如果没有文件创建文件
        if(!_database.open)
        {
            NSLog(@"打开失败");
            return;
        }
        NSLog(@"打开成功");
    }
    
        //<2>创建表
        [self testCreateTabel];
    -(void)testCreateTabel
    {
        NSString *sql = @"create table if not exists stuInfo(sid varchar(12),username varchar(12),password varchar(12),age integer)";
        
        //注意: select查询语句使用executeQuery
        //      其他语句使用executeUpdate
        
        BOOL b = [_database executeUpdate:sql];
        b?NSLog(@"创建成功"):NSLog(@"创建失败");
        
        
    }
    
        //<3>插入数据
        //[self testInsertData];
    -(void)testInsertData
    {
        NSString *sid = @"13121113";
        NSString *username = @"zhangsan";
        NSString *password = @"111";
        int age = 23;
        
        NSString *sql = @"insert into stuInfo(sid,username,password,age) values(?,?,?,?)";
        //注意: 任何数据转化为字符串传入
        BOOL b = [_database executeUpdate:sql,sid,username,password,@(age).stringValue];
        b?NSLog(@"插入成功"):NSLog(@"插入失败");
        
    }
        
        //<4>查询数据
        //[self testQueryData];
    -(void)testQueryData
    {
        NSString *sql = @"select * from stuInfo";
        FMResultSet *result = [_database executeQuery:sql];
        //每次使用next获取一行, 没有返回nil
        while ([result next]) {
            //每次获取一条记录的各个字段
            NSLog(@"%@ %@ %@ %d",
                  [result stringForColumn:@"sid"],
                  [result stringForColumn:@"username"],
                  [result stringForColumn:@"password"],
                  [result intForColumn:@"age"]);
        }
        
    }
        //<5>更新数据
        //[self updateData];
    -(void)updateData
    {
        NSString *username = @"zhangsan";
        NSString *newPassword = @"666";
        NSString *sql = @"update stuInfo set password=? where username=?";
        //注意: 任何数据转化为字符串传入
        BOOL b = [_database executeUpdate:sql,newPassword,username];
        b?NSLog(@"更新成功"):NSLog(@"更新失败");
    };
        
        //<6>删除数据
    -(void)deleteData
    {
        NSString *username = @"zhangsan";
        NSString *sql = @"delete from stuInfo where username=?";
        //注意: 任何数据转化为字符串传入
        BOOL b = [_database executeUpdate:sql,username];
        b?NSLog(@"删除成功"):NSLog(@"删除失败");
    }
    View Code
  • 相关阅读:
    ABAP开发者上云的时候到了
    1074. 宇宙无敌加法器(20)
    1073. 多选题常见计分法(20)
    1072. 开学寄语(20)
    1071. 小赌怡情(15)
    1049. Counting Ones (30)
    1047. Student List for Course (25)
    1044. Shopping in Mars (25)
    1043. Is It a Binary Search Tree (25)
    1040. Longest Symmetric String (25)
  • 原文地址:https://www.cnblogs.com/caolongs/p/4779385.html
Copyright © 2011-2022 走看看