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
网友评论