上一篇文章sqlite3原生数据库简单使用 介绍了sqlite3原生数据库的简单使用,由于执行语句都是C语言写的,导致看起来操作非常不方便,因此便根据数据库封装了一个很好用的第三方框架,以下是他的简单操作
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",NSHomeDirectory());
NSString *path = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents/database.sqlite"];
//根据路径创建了一个数据库操作对象(并没有创建数据库)。
_db = [[FMDatabase alloc]initWithPath:path];
//打开数据库(如果不存在就创建并打开)
if ([_db open])
{
NSLog(@"打开成功!");
}
else
{
NSLog(@"打开失败!");
}
}
//创建一张表
- (IBAction)creatTableClick:(UIButton *)sender
{
//executeUpdate(增、删、改) 执行一段sql语句
[_db executeUpdate:@"CREATE TABLE IF NOT EXISTS people (peopleID INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)"];
}
//插入一条数据
- (IBAction)insertDataClick:(UIButton *)sender
{
NSString *sql = [NSString stringWithFormat:@"INSERT INTO people (name,age)VALUES('%@',%lu)",_nameField.text,_ageField.text.integerValue];
[_db executeUpdate:sql];
_nameField.text = @"";
_ageField.text = @"";
}
//搜索所有联系人
- (IBAction)selectAllDataClick:(UIButton *)sender
{
//executeQuery 查询数据库
//FMResultSet 结果集,查询的结果都在结果集当中
FMResultSet *set = [_db executeQuery:@"SELECT * FROM people"];
//next 方法 进入下一行数据,如果有下一行数据,返回YES,没有下一行数据返回NO
while ([set next])
{
//intForColumn 取出当前行某列的整形数据
//intForColumnIndex 取出某列的整形数据
NSInteger peopleID = [set intForColumn:@"peopleID"];
NSString *name = [set stringForColumn:@"name"];
NSInteger age = [set intForColumn:@"age"];
NSLog(@"%lu--------%@-------%lu",peopleID,name,age);
}
//关闭结果集
[set close];
}