9.1 FMDB数据库-常用方法

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数据库-常用方法)