FMDB 用法
来源:互联网 发布:hello world程序python 编辑:程序博客网 时间:2024/05/20 02:53
1.下载FMBD类库(导入到iOS 项目中的时候会报错
_sqlite3_bind_blob", referenced from:
这是需要 导入一个 libsqlite3.0.dblib 系统类库 在Link Binary WithLibraries )2.创建文件
#import <Foundation/Foundation.h>
#import "FMDB.h"
@class LVModal;
@interface LVFmdbTool :NSObject
// 插入模型数据
+ (BOOL)insertModal:(LVModal *)modal;
/** 查询数据,如果传空 默认会查询表中所有数据 */
+ (NSArray *)queryData:(NSString *)querySql;
/** 删除数据,如果传空 默认会删除表中所有数据 */
+ (BOOL)deleteData:(NSString *)deleteSql;
/** 修改数据 */
+ (BOOL)modifyData:(NSString *)modifySql;
@end
//****************** 封装工具类 *****************************
#import "LVFmdbTool.h"
#import "LVModal.h"
#define LVSQLITE_NAME @"modals.sqlite"
@implementation LVFmdbTool
static FMDatabase *_fmdb;
+ (void)initialize {
//执行打开数据库和创建表操作
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:LVSQLITE_NAME];
_fmdb = [FMDatabasedatabaseWithPath:filePath];
[_fmdbopen];
#warning 必须先打开数据库才能创建表。。。否则提示数据库没有打开
[_fmdbexecuteUpdate:@"CREATE TABLE IF NOT EXISTS t_modals(id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER NOT NULL, ID_No INTEGER NOT NULL);"];
}
+ (BOOL)insertModal:(LVModal *)modal {
NSString *insertSql = [NSStringstringWithFormat:@"INSERT INTO t_modals(name, age, ID_No) VALUES ('%@', '%zd', '%zd');", modal.name, modal.age, modal.ID_No];
return [_fmdbexecuteUpdate:insertSql];
}
+ (NSArray *)queryData:(NSString *)querySql {
if (querySql == nil) {
querySql = @"SELECT * FROM t_modals;";
}
NSMutableArray *arrM = [NSMutableArrayarray];
FMResultSet *set = [_fmdbexecuteQuery:querySql];
while ([set next]) {
NSString *name = [set stringForColumn:@"name"];
NSString *age = [set stringForColumn:@"age"];
NSString *ID_No = [set stringForColumn:@"ID_No"];
LVModal *modal = [LVModalmodalWith:name age:age.intValueno:ID_No.intValue];
[arrMaddObject:modal];
}
return arrM;
}
+ (BOOL)deleteData:(NSString *)deleteSql {
if (deleteSql == nil) {
deleteSql = @"DELETE FROM t_modals";
}
return [_fmdbexecuteUpdate:deleteSql];
}
+ (BOOL)modifyData:(NSString *)modifySql {
if (modifySql == nil) {
modifySql = @"UPDATE t_modals SET ID_No = '789789' WHERE name = 'lisi'";
}
return [_fmdbexecuteUpdate:modifySql];
}
//******************* model 类 ****************************
#import <Foundation/Foundation.h>
@interface LVModal :NSObject
@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) NSInteger age;
@property (nonatomic,assign) NSInteger ID_No;
+ (instancetype)modalWith:(NSString *)name age:(NSInteger)age no:(NSInteger)ID_No;
@end
#import "LVModal.h"
@implementation LVModal
+ (instancetype)modalWith:(NSString *)name age:(NSInteger)age no:(NSInteger)ID_No {
LVModal *modal = [[LVModalalloc] init];
modal.name = name;
modal.age = age;
modal.ID_No = ID_No;
return modal;
}
@end
//******************* 调用方法 ****************************
- (IBAction)queryBtnDidClick:(UIButton *)sender {
[self.modalsArrMremoveAllObjects];
NSArray *modals = [LVFmdbToolqueryData:nil];
[self.modalsArrMaddObjectsFromArray:modals];
[self.tableViewreloadData];
}
- (IBAction)deleteBtnDidClick:(UIButton *)sender {
NSString *delesql =@"DELETE FROM t_modals WHERE name = 'zhangsan'";
[LVFmdbTooldeleteData:delesql];
#warning 删除数据后执行一次查询工作刷新表格
[selfqueryBtnDidClick:nil];
}
- (IBAction)updateBtnDidClick:(UIButton *)sender {
[LVFmdbTool modifyData:nil];
#warning 删除数据后执行一次查询工作刷新表格
[selfqueryBtnDidClick:nil];
}
- FMDB用法
- FMDB 用法
- FMDB 数据库简单用法
- FMDB的用法讲解
- 关于FMDB的一些用法
- FMDB
- FMDB
- FMDB
- FMDB
- FMDB
- fmdb
- FMDB
- FMDB
- fmdb
- FMDB
- FMDB
- fmdb
- FMDB
- OC_08_03 通知
- STL_算法_元素计数(count、count_if)
- nginx配置优化
- Jenkins配置问题汇总
- iOS开发简单的实现后台任务(诸如后台播放音乐,定时器等)
- FMDB 用法
- LeetCode 033 Search in Rotated Sorted Array
- C语言宏定义##连接符和#符的使用
- DOM操作-event触发顺序
- 我的Pycharm,我做主
- usrp 升级fpga引发的问题
- Android版添加phonegap---横竖屏锁定插件教程
- 自动化管理工具Saltstack之安装篇(1)
- 分布式与集群的联系与区别