ios 数据库 (FMDB使用)

下面我们用单例全局来学习下FMDB的简单使用:首先我创建如下图 方便演示
在这里插入图片描述
下面开始使用
一 、首先创建一个单例类 LHDataBaseManager 创建单例 LHDataBaseManager.m 中
1 、创建单例

+ (instancetype)shareManager {
    static dispatch_once_t onceToken;
    static LHDataBaseManager * dataBaseManager = nil;
    dispatch_once(&onceToken, ^{
        dataBaseManager = [[LHDataBaseManager alloc] init];
    });
    return dataBaseManager;
}

2 、创建数据库和表

/**
 创建数据库和表
 */
- (void)createDataBaseAndTable {
    NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    //拼接文件名
    NSString * sqlitPath = [path stringByAppendingPathComponent:@"LHDataBase.sqlite"];
    NSLog(@"数据库路径:%@",sqlitPath);
    //创建数据库,加入到队列中
    self.db = [FMDatabase databaseWithPath:sqlitPath];
    if ([self.db open]) {
        BOOL result = [self.db executeUpdate:@"create table if not exists t_user (id integer primary key autoincrement,name text,content text)"];
        if (result) {
            NSLog(@"t_user表创建成功");
        } else {
            NSLog(@"t_user表创建失败");
        }
    } else {
        NSLog(@"数据库打开失败");
    }
}

3、实现增、删、改、查

/**
 新增数据
 @param name 姓名
 @param content 爱好
 */
-(void)insetName:(NSString *)name content:(NSString *)content {
    
    BOOL result = [self.db executeUpdate:@"insert into t_user (name,content) values (?,?)",name,content];
    if (result) {
        NSLog(@"新增数据成功 名字:%@",name);
    } else {
        NSLog(@"新增数据失败");
    }
}



/**
 删除数据
 @param name 名字
 */
- (void)deleteDataByName:(NSString *)name {
    BOOL result = [self.db executeUpdate:@"delete from t_user where name = ?",name];
    if (result) {
        NSLog(@"删除数据成功");
    }
    else{
        NSLog(@"删除数据失败");
    }
}


/**
 更新数据

 @param name 更新的名字
 @param content 更新的内容
 */
- (void)updataDataWithName:(NSString *)name content:(NSString *)content {
    BOOL result = [self.db executeUpdate:@"update t_user set content = ?  where name = ?",content,name];
    if (result) {
        NSLog(@"更新成功");
    } else {
        NSLog(@"更新失败");
    }
}



/**
 查询数据

 @return 返回查询到的数据
 */
- (NSMutableArray *)selectAllContent {
    NSMutableArray * array = [NSMutableArray array];
    FMResultSet * setResult = [self.db executeQuery:@"select * from t_user"];
    while ([setResult next]) {
        //先将数据存放到字典
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        [dic setObject:[setResult stringForColumn:@"name"] forKey:@"name"];
        [dic setObject:[setResult stringForColumn:@"content"] forKey:@"content"];
        //然后将字典存放到数组
        [array addObject:dic];
    }
    return array;
}

LHDataBaseManager.h 中

 /**
 创建数据库和表
 */
- (void)createDataBaseAndTable;
/**
 创建对象
 @return 返回LHDataBaseManager 对象
 */
+ (instancetype)shareManager;
/**
 删除数据
 @param name 名字
 */
- (void)deleteDataByName:(NSString *)name;
/**
 查询数据
 
 @return 返回查询到的数据
 */
- (NSMutableArray *)selectAllContent;
/**
 更新数据
 
 @param name 更新的名字
 @param content 更新的内容
 */
- (void)updataDataWithName:(NSString *)name content:(NSString *)content;

/**
 新增数据
 @param name 姓名
 @param content 爱好
 */
-(void)insetName:(NSString *)name content:(NSString *)content;

二 、对单例类使用
1、插入

 [[LHDataBaseManager shareManager] insetName:nameTextField.text content:contentTextField.text];

执行效果
在这里插入图片描述

在这里插入图片描述
插入成功 ;
2、查询

[[LHDataBaseManager shareManager] selectAllContent]

在这里插入图片描述
3、修改 将姓名E 对应的爱好更新为R

[[LHDataBaseManager shareManager] updataDataWithName:nameTextField.text content:contentTextField.text];

在这里插入图片描述
4、删除E的内容

[[LHDataBaseManager shareManager] deleteDataByName:nameTextField.text];

在这里插入图片描述

以上就完成了对 FMDB的简单使用 附带代码

csdn demo 或点击链接 https://download.csdn.net/download/u013983033/10746753
github demo 或点击链接 https://github.com/lvhome/FMDBDemo

猜你喜欢

转载自blog.csdn.net/u013983033/article/details/83378875