写博客的目的只是为了自己记录一些简单的资源,写的比较简单的,适用于刚接触ios开发的同学
先来无事就写了一个使用FMDB的demo,希望对大家有帮助
1.首先用cocoaPods导入FMDB框架(怎么导入我以前的博客有写到)
2.打开工程,创建一个数据库
3.插入数据
4.查询数据
5.删除和修改数据库中表的内容和上述差不多,就不说了
具体代码如下ViewController.h
<span style="font-size:14px;">#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
</span>
ViewController.m
<span style="font-size:14px;">#import "ViewController.h"
#import <FMDB.h>
@interface ViewController ()
{
FMDatabase *_db;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *dbPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [dbPath stringByAppendingPathComponent:@"PowerStaionInfo.sqlite"];
_db = [FMDatabase databaseWithPath:filePath];
NSLog(@"%@",filePath);
BOOL flag = [_db open];
if (!flag) {
NSLog(@"打开数据库失败!");
}
else{
NSLog(@"打开数据库成功!");
}
NSString *sql = @"create table if not exists t_information(PowerStaionName text,PowerStaionInfo text,image data)";
BOOL creat = [_db executeUpdate:sql];
if (creat) {
NSLog(@"创建表成功!");
// UIImage *image = [UIImage imageNamed:@"fmdbDogTest.jpg"];
// NSData *data=UIImagePNGRepresentation(image);
// BOOL insert = [_db executeUpdate:@"insert into t_information(PowerStaionName,PowerStaionInfo,image) values(?,?,?)",@"两河口",@"这是两河口的简介,我用的狗的图片代替两河口的图片",data];
// if (insert) {
// NSLog(@"插入信息成功");
// }else{
// NSLog(@"插入信息失败!");
// }
}else{
NSLog(@"创建表失败!");
}
[_db close];
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(100, 300, 200, 200)];
img.backgroundColor = [UIColor redColor];
if ([_db open]) {
NSLog(@"打开数据库成功!hhhhhhh");
NSString *sqlse = @"select * from t_information where PowerStaionName = '两河口'";
FMResultSet *re = [_db executeQuery:sqlse];
NSData *imgData;
while ([re next]) {
imgData = [re dataForColumn:@"image"];
}
img.image = [UIImage imageWithData:imgData];
}
[_db close];
[self.view addSubview:img];
}
</span>
我为了测试在数据库中如何存图片,就自己在网上下载了一幅图片
开始先打开数据库,创建一张表,表的属性可以自己定义,将图片转化成data类型的数据存到表中,上面代码注释的部分就是存入表的代码,然后在界面显示表中存储的代码,
将data类型的数据转为image在界面显示。
创建表成功之后可以下载一个数据库管理工具,打开创建表的目录,去查看自己创建的表的内容。
不得不说的是,除了FMDB之外,还有用自带的SQLite,CocoaData数据库来存储自己想存的东西,FMDB是SQLite的进一步封装,需要写SQL语句。而CocoaData不是关系型数据库,不用写SQL语句,当数据库之间有关联的时候,或者数据量较大的时候,最好用SQLite。CocoaData还有一些其他的限制,可以去百度搜索下,我就不再说了。
当然,数据的存储除了用数据库存储之外还有很多其他的存储方式,选哪种存储方式根据实际的情况而定。
效果图如下: