美文网首页
9.1 FMDB数据库-常用方法

9.1 FMDB数据库-常用方法

作者: 草根小强 | 来源:发表于2019-04-25 16:17 被阅读0次

    FMDB数据库-常用方法

    #import "ViewController.h"
    #import "FMDatabase.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //NSHomeDirectory()
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/sq.db"];
        
        //指定数据存储路径
        //FMDatabase管理数据的类(增 删 改 查....)
        FMDatabase *dataBase = [[FMDatabase alloc]initWithPath:path];
        
        //open打开数据库/文件  如果文件存在就是打开 如果文件不存在就是创建
        BOOL ret = [dataBase open];
        
        if (ret) {
            NSLog(@"创建成功");
            
            //创建表
            //CREATE TABLE IF NOT EXISTS 如果表不存在 创建表 固定写法
            //大写小写都可以 官方建议关键词大写
            NSString *createSq = @"CREATE TABLE IF NOT EXISTS userInfo(name text,age interger)";
            //userInfo 是表的名字 这个名字是你自己定义的
            //()就是要存储的数据的个数以及类型
            //text 字符串类型 verchar 字符串 interger 整型
            
            //除了查看表 增、删、改...都要使用这个方法executeUpdate
            //参数是sq的语法 定义什么样的语法 执行什么样的功能
            ret = [dataBase executeUpdate:createSq];
            if (ret) {
                NSLog(@"创建表成功");
            }else{
                NSLog(@"创建表失败 %@",dataBase.lastErrorMessage);
            }
            
        }else{
            //lastErrorMessage创建/打开数据库失败的错误信息
            NSLog(@"失败信息:%@",dataBase.lastErrorMessage);
        }
        NSLog(@"路径:%@",path);
        
        
        //存储具体数据
        //插入数据的SQ语法
        NSString *insertSq = @"insert into userInfo (name,age) values(?,?)";
        //执行插入语法  executeUpdate参数必须是对象
        BOOL ret1 = [dataBase executeUpdate:insertSq,@"老大",@12];
        [dataBase executeUpdate:insertSq,@"老二",@12];
        [dataBase executeUpdate:insertSq,@"老三",@12];
        [dataBase executeUpdate:insertSq,@"老四",@12];
        [dataBase executeUpdate:insertSq,@"老五",@12];
        [dataBase executeUpdate:insertSq,@"老六",@12];
        [dataBase executeUpdate:insertSq,@"老七",@12];
        if (ret1) {
            NSLog(@"插入成功");
        }else{
            NSLog(@"插入失败:%@",dataBase.lastErrorMessage);
        }
        
        
        //修改数据
    //    NSString *updatSq = @"update userInfo set name=?,age=?";
    //    
    //    BOOL ret3 = [dataBase executeUpdate:updatSq,@"狐狸精",@20000];
    //    if (ret3) {
    //        NSLog(@"修改成功");
    //    }else{
    //        NSLog(@"修改失败 %@",dataBase.lastErrorMessage);
    //    }
    //    
        //删除  where依据那个参数进行删除
        NSString *deleteSq = @"delete from userInfo where name=?";
        
        BOOL ret4 = [dataBase executeUpdate:deleteSq,@"狐狸精"];
        if (ret4) {
            NSLog(@"删除成功");
        }else{
            NSLog(@"删除失败");
        }
        
        //查看的SQ语法  select *查看所有数据
        NSString *resultSQ = @"select *from userInfo";
        
        //executeQuery查询的方法
        FMResultSet *set = [dataBase executeQuery:resultSQ];
        //FMResultSet 查询的类
        
        //next逐条查询 查到了就查询下一条
    //    BOOL ret2 = [set next];
        while ([set next]) {
            //stringForColumn提取数据
            NSString *name = [set stringForColumn:@"name"];
            NSInteger age = [set intForColumn:@"age"];
            
            NSLog(@"名字:%@ 年龄:%ld",name,age);
        }
    }
    @end
    
    FMDB数据库-常用方法.png

    相关文章

      网友评论

          本文标题:9.1 FMDB数据库-常用方法

          本文链接:https://www.haomeiwen.com/subject/hkjzgqtx.html