iOS

iOS开发之FMDB图片的增删查改

2017-02-27  本文已影响996人  朱晓晓的技术博客

上一篇讲到FMDB的关于字符串的增删查改
http://www.jianshu.com/p/c7be4535ed87
此次图片的使用的也是类似,具体不在赘述,要注意的是,FMDB存放图片的使用的是"blob"的类型.

demo演示demo演示

代码如下:

#import "ViewController.h"
#import "FMDatabase.h"
#import "FMDatabaseQueue.h"

@interface ViewController ()

@property (nonnull, strong) FMDatabaseQueue * queue;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad {
    
    [super viewDidLoad];
    //数据库在沙盒中的路径
    NSString * fileName = [[NSSearchPathForDirectoriesInDomains(13, 1, 1)lastObject]stringByAppendingPathComponent:@"testOfFMDB.sqlite"];
    NSLog(@"%@",fileName);
    
    //创建数据库
    self.queue = [FMDatabaseQueue databaseQueueWithPath:fileName];
    
    [self.queue inDatabase:^(FMDatabase *db) {
        
        if ([db open]) {
            
            BOOL createTable = [db executeUpdate:@"create table if not exists t_testOfFMDB (id integer primary key autoincrement,image blob)"];
            if (createTable) {
                NSLog(@"创建表成功");
            }
            else{
                NSLog(@"创建表失败");
            }
        }
        
        [db close];
    }];
    
}
- (IBAction)insert:(id)sender {
    
    [self.queue inDatabase:^(FMDatabase *db) {
        
        if ([db open]) {
            NSData * data = UIImageJPEGRepresentation([UIImage imageNamed:@"BG.jpg"], 1);
            
            BOOL flag = [db executeUpdate:@"insert into t_testOfFMDB (image) values(?)",data];
            
            if (flag) {
                NSLog(@"插入成功");
            }else{
                NSLog(@"插入失败");
            }
            
            
        }
        [db close];
    }];
    
}


- (IBAction)delete:(id)sender {
    
    [self.queue inDatabase:^(FMDatabase *db) {
        
        if ([db open]) {
            
            BOOL flag = [db executeUpdate:@"delete from t_testOfFMDB"];
            
            if (flag) {
                NSLog(@"删除成功");
            }else{
                NSLog(@"删除失败");
            }
        }
        
        
        [db close];
    }];
    
    
}
- (IBAction)update:(id)sender {
    
    [self.queue inDatabase:^(FMDatabase *db) {
        
        if ([db open]) {
            NSData * data = UIImageJPEGRepresentation([UIImage imageNamed:@"CX.jpg"], 1);
            
            BOOL flag = [db executeUpdate:@"update t_testOfFMDB set image = ?",data];
            
            if (flag) {
                NSLog(@"修改成功");
            }else{
                NSLog(@"修改失败");
            }
        }
        [db close];
    }];
    
}
- (IBAction)select:(id)sender {
    
    
    [self.queue inDatabase:^(FMDatabase *db) {
        
        if ([db open]) {
            //返回查询数据的结果集
            FMResultSet * resultSet = [db executeQuery:@"select * from t_testOfFMDB"];
            //查询表中的每一个记录
            while ([resultSet next]) {
                
                NSData * data = [resultSet dataForColumn:@"image"];
                
                UIImage * image = [UIImage imageWithData:data];
                
                self.imageView.image = image;
                
            }
            
        }
        [db close];
    }];
    
    
}

@end

demo链接:https://github.com/OwenJoe/imgForFMDB.git

上一篇 下一篇

猜你喜欢

热点阅读