下面我们用单例全局来学习下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