• 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
  • 相关阅读:
    Linux系统-命令行快捷键
    Golang理解-Context包
    Golang理解-垃圾回收机制
    Linux系统-Systemd资源控制
    Linux系统-"cannot access Input/output error"
    Linux系统-ntpdate时间同步报错
    Golang理解-数组和切片
    Golang理解-位运算
    Golang理解-指针
    Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
  • 原文地址:https://www.cnblogs.com/caolongs/p/4779385.html
Copyright © 2020-2023  润新知