标签:
FMDB 数据库 和 SQLite3 非常相似 但要比 SQLite3 省好多代码 没有了各种绑定 直接引用 FMDB 的方法就可以简单解决
首先 FMDB 他还是一个单例类 因为要被其他类 使用
FMDB 还是由 打开数据库 创建数据名 添加数据 更新数据 删除数据 查询数据 几部分内容
在这里 model 的属性除了 image 外都是 NSString 类型 image 是 NSData 类型 所以在下面的查询处会有一个转换方式
打开数据库: 先 获取路径 在调用 databaseWithPath 这个方法 代码如下:
NSString *str = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:sqliteName];
db = [FMDatabase databaseWithPath:str];
创建字段: 先打开数据库 再添加所有要添加的数据字段 然后调用 executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"create table if not exists %@ (ID integer primary key autoincrement, name text, gender text, age text, image blob, myID text)", tableName];
BOOL flag = [db executeUpdate:str];
插入数据: 先打开数据库 再插入所要添加的数据(一定要注意他们的先后顺序) 然后调用 executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"insert into %@ (name, gender, age, image, myID) values (?, ?, ?, ?, ?)", tableName];
BOOL flag = [db executeUpdate:str, name, gender, age, image, myID];
更新数据: 先打开数据库 再添加需要更新的所有字段 然后调用 executeUpdate:方法
NSString *str = [NSString stringWithFormat:@"update %@ set name = ?, gender = ?, age = ?, image = ?, myID = ? where myID = ?", tableName];
BOOL flag = [db executeUpdate:str,name, gender, age, image, myID, forMyID];
删除数据: 先打开数据库 再删除数据要根据字段中唯一的一个字段值进行删除 然后调用 executeUpdate方法
NSString *str = [NSString stringWithFormat:@"delete from %@ where myID = ?", tableName];
BOOL flag = [db executeUpdate:str,myID];
查询所有数据: 先打开数据库 根据表明进行查询数据 然后调用 executeQuery:方法
NSString *str = [NSString stringWithFormat:@"select * from %@", tableName];
Model *model = [[Model alloc] init];
FMResultSet *result = [db executeQuery:str];
NSMutableArray *array = [NSMutableArray array];
while ([result next]) {
model.name = [result stringForColumn:@"name"];
model.gender = [result stringForColumn:@"gender"];
model.age = [result stringForColumn:@"age"];
// 将 NSString 转换成 NSData 类型
model.image = [[result stringForColumn:@"image"] dataUsingEncoding:NSUTF8StringEncoding];
model.myID = [result stringForColumn:@"myID"];
[array addObject:model];
}
最后 在需要的地方调用
小结:
创建 插入 跟新 删除 基本上相似 sql语句方法中有几个参数就有几个字段 那就添加几个 执行语句基本上是一样的
查询所有的结果是一个个的 model 所以用数组装起来 返回数组 执行语句和上面的不同 executeQuery:
若是查询一个 返回的是一个model
FMDB 数据库的使用
标签:
原文地址:http://www.cnblogs.com/zy-827/p/5598416.html