FMDB的简单使用

1.什么是FMDB

FMDB是iOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言API。

2.FMDB的优点

a更加面向对象,使用oc进行封装

b.相比于core data框架,更加简介

c.比较特殊的 提供了多线程安全的数据库操作

3.打开数据库

通过指定SQLite数据库文件路径来创建FMDatabase对象

FMDatabase *db = [FMDatabase databaseWithPath:path];

if (![db open]) {

NSLog(@"数据库打开失败!");

}

路径的说明:(本文中使用的是沙盒路径)

(1)具体文件路径

如果不存在会自动创建

(2)空字符串@""

会在临时目录创建一个空的数据库

当FMDatabase连接关闭时,数据库文件也被删除

(3)nil

会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁

话不多说直接上代码

- (void)viewDidLoad {

[super viewDidLoad];

//沙盒路径

NSString *path =[NSHomeDirectory() stringByAppendingFormat:@"/Documents/user.sql"];

NSLog(@"%@",path);

//创建数据库

FMDatabase  * db= [FMDatabase databaseWithPath:path];

//打开数据库

if ([db open]) {

//检查student表是否创建 id类型主键自增长  name 和age不允许为空

NSString *sqlCreateTable =  [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, address TEXT)"];

BOOL res = [db executeUpdate:sqlCreateTable];

if (res) {

NSLog(@"创建表成功");

}else

{

NSLog(@"创建失败");

}

}

//关闭数据库

[db close];

//添加数据

if ([db open]) {

NSString *insertSql1= [NSString stringWithFormat:

@"INSERT INTO student (name, age, address) VALUES ('%@', '%@', '%@')",

@"张三", @"13", @"济南"];

BOOL res = [db executeUpdate:insertSql1];

NSString *insertSql2 = [NSString stringWithFormat:

@"INSERT INTO student (name, age, address) VALUES ('%@', '%@', '%@')",

@"李四", @"12", @"济南"];

BOOL res2 = [db executeUpdate:insertSql2];

if (!res) {

NSLog(@"插入数据失败");

} else {

NSLog(@"插入数据成功");

}

if (!res2) {

NSLog(@"插入数据失败");

} else {

NSLog(@"插入数据成功");

}

[db close];

}

//修改数据

if ([db open]) {

NSString *updateSql = [NSString stringWithFormat:

@"UPDATE student SET 'age = '%@' WHERE age' = '%@'",

@"15" , @"13"];

BOOL res = [db executeUpdate:updateSql];

if (!res) {

NSLog(@"更新失败");

} else {

NSLog(@"成功");

}

[db close];

}

//删除数据

if ([db open]) {

NSString *deleteSql = [NSString stringWithFormat:

@"delete from student where name = '%@'",

@"张三"];

BOOL res = [db executeUpdate:deleteSql];

if (!res) {

NSLog(@"删除失败");

} else {

NSLog(@"成功");

}

[db close];

}

//查询

if ([db open]) {

NSString * sql = [NSString stringWithFormat:

@"SELECT * FROM student"];

FMResultSet * rs = [db executeQuery:sql];

while ([rs next]) {

int Id = [rs intForColumn:@"id"];

NSString * name = [rs stringForColumn:@"name"];

NSString * age = [rs stringForColumn:@"age"];

NSString * address = [rs stringForColumn:@"address"];

NSLog(@"id = %d, name = %@, age = %@  address = %@", Id, name, age, address);

}

[db close];

}

}

你可能感兴趣的:(FMDB的简单使用)