iOS:第三方数据库文件FMDB的使用
第三方数据库FMDB
FMDatabase:对象就代表一个单独的SQLite数据库用来执行SQL语句
FMResultSet:使用FMDatabase执行查询后的结果集
- (BOOL)next;
-{type}ForColumnIndex:(int)columnIdx
执行SQL语句:
self.db = [FMDatabase databaseWithPath:fileName]; //创建数据库
[self.db open];//打开数据库
[self.db close]; //关闭数据库
//对数据库进行插入、修改的操作
[self.db executeUpdate:@“CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT,age INTEGER)”];
[self.db executeUpdate:@"INSERT INTO t_student(name , age) VALUES(?, ?);", @"xuneng", @(10)];
[self.db executeUptate:@"update t_student set name = 'lisi' where age = @(10)"];
<2>查询:FMResultSet类(数据取出完全后,不需要再去关闭结果集,当新的结果集产生,或者其数据库关闭时,会自动关闭。)
// 1.查询
FMResultSet *set = [self.db executeQuery:@"SELECT * FROM t_student;"]; //返回结果集
// 2.取出数据
while ([set next])
{
// 取出姓名
NSString *name = [set stringForColumnIndex:1];
// 取出年龄
int age = [set intForColumnIndex:2];
NSString *name = [set stringForColumn:@"name"];
int age = [set intForColumn:@"age"];
NSLog(@"name = %@, age = %d", name, age);
}
创建数据库并进行增删改查的操作举例如下:
1、首先导入sqlite本地数据库和第三方数据库FMDB
2、在UIViewController类中对数据库表进行增删该查操作如下:
《1》数据库路径
NSArray *dics = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dbPath = [[dics lastObject] stringByAppendingPathComponent:@"user.db"];
《2》 创建数据库
self.db = [FMDatabase databaseWithPath:dbPath];
《3》打开数据库
if(![self.db open])
{
return; //打开数据库失败
}
《4》创建数据库表
if(![self.db executeUpdate:@"create table if not exists user (ID integer primary key autoincrement,name text,password text)"])
{
return; //创建数据库表失败
}
《5》插入数据
if(![self.db executeUpdate:@"insert into user (name,password) values('admin','123456')"])
{
return; //插入数据失败
}
《6》修改数据
if(![self.db executeUpdate:@"update user set name = 'zhangsan' where ID = 2"])
{
return; //修改数据失败
}
《7》获取结果集
FMResultSet *resultSet = [self.db executeQuery:@"select * from user"];
《8》遍历结果集,取出数据
while ([resultSet next])
{
int ID = [resultSet intForColumnIndex:0];
NSString *name = [resultSet stringForColumnIndex:1];
NSString *password = [resultSet stringForColumnIndex:2];
NSLog(@"ID:%d,name:%@,password:%@",ID,name,password);
}
《8》//关闭数据库
[self.db close];
演示结果如下:
2015-09-21 21:44:38.640 第三方数据库FMDB[4207:296060] ID:1,name:admin,password:123456 2015-09-21 21:44:38.641 第三方数据库FMDB[4207:296060] ID:2,name:zhangsan,password:123456 2015-09-21 21:44:38.641 第三方数据库FMDB[4207:296060] ID:3,name:admin,password:123456 2015-09-21 21:44:38.641 第三方数据库FMDB[4207:296060] ID:4,name:admin,password:123456 2015-09-21 21:44:38.641 第三方数据库FMDB[4207:296060] ID:5,name:admin,password:123456