FMDB简单实现
来源:互联网 发布:c语言判断是否为质数 编辑:程序博客网 时间:2024/05/16 07:44
/*
*teleModel.h
*/
#import <Foundation/Foundation.h>
@interface teleModel : NSObject
@property(nonatomic,copy)NSString *tele_name;
@property(nonatomic,copy)NSString *tele_num;
@property(nonatomic,copy)NSString *tele_addr;
@property(nonatomic,copy)NSString *tele_remark;
@property(nonatomic,copy)NSData *tele_imageData;
@end
/*
*DatabaseManager.m
*/
#import "DatabaseManager.h"
#import "FMDatabase.h"
#import "teleModel.h"
@implementation DatabaseManager
{
FMDatabase *db;
}
//单列
+(DatabaseManager *)sharedManager
{
staticDatabaseManager *instance = nil;
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[DatabaseManageralloc]init];
});
return instance;
}
-(instancetype)init
{
if (self = [superinit]) {
//1, 创建数据库操作对象
db = [FMDatabasedatabaseWithPath:[selfdbPath]];
//打开数据库
BOOL ret = [dbopen];
NSLog(@"数据库打开:%@", ret ?@"成功" :@"失败");
//2, 创建表
BOOL ret2 = [selfcreateTable];
NSLog(@"表创建:%@", ret2 ?@"成功" :@"失败");
}
returnself;
}
//创建表
-(BOOL)createTable
{
NSString *sql =@"create table if not exists teles(id integer primary key autoincrement, tele_name text, tele_num text, tele_addr text, tele_remark text, tele_imageData blob)";
return [dbexecuteUpdate:sql];
}
//数据库文件的存储路径
-(NSString *)dbPath
{
NSString *path = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];
NSLog(@"path:%@", path);
return [pathstringByAppendingPathComponent:@"tele.db"];
}
//插入数据
-(BOOL)insertModels:(teleModel*)tele{
NSString *sql =@"insert into teles(tele_name, tele_num, tele_addr, tele_remark, tele_imageData) values(?,?,?,?,?)";
return [dbexecuteUpdate:sql, tele.tele_name, tele.tele_num, tele.tele_addr, tele.tele_remark, tele.tele_imageData];
}
//获取数据
-(NSArray*)getAllModels
{
NSMutableArray *mArr = [NSMutableArraynew];
NSString *sql =@"select * from teles";
FMResultSet *set = [dbexecuteQuery:sql];
while (set.next) {
NSString *tele_name = [setstringForColumn:@"tele_name"];
NSString *tele_num = [setstringForColumn:@"tele_num"];
NSString *tele_addr = [setstringForColumn:@"tele_addr"];
NSString *tele_remark = [setstringForColumn:@"tele_remark"];
NSData *imageData = [setdataForColumn:@"tele_imageData"];
//model
teleModel *model = [[teleModelalloc] init];
model.tele_name = tele_name;
model.tele_num = tele_num;
model.tele_addr = tele_addr;
model.tele_remark = tele_remark;
model.tele_imageData = imageData;
[mArr addObject:model];
}
return mArr;
}
-(BOOL)deleModel:(teleModel *)tele
{
NSString *sql =@"delete from teles where tele_name=?";
BOOL ret = [dbexecuteUpdate:sql, tele.tele_name];
if ( ret ) {
NSLog(@"删除数据成功!");
}
else {
NSLog(@"删除数据失败!");
}
returnYES;
}
@end
- FMDB简单实现
- fmdb 使用简单教程
- FMDB 数据库简单操作
- FMDB 简单使用
- FMDB的简单使用方法
- FMDB的简单使用
- fmdb 数据库简单使用
- fmdb简单使用
- FMDB简单应用
- FMDB的简单使用
- FMDB 数据库简单用法
- FMDB的简单使用
- FMDB简单介绍
- FMDB简单介绍
- FMDB的简单使用
- fmdb 的简单使用
- FMDB简单介绍
- fmdb 简单使用
- [Leetcode]234. Palindrome Linked List
- log4J:"WARN No appenders could be found for logger"解决方法
- C#仿JAVA CountDownLatch的线程同步工具
- windows系统下如何设置laravel5的任务
- Android屏幕适配全攻略(最权威的官方适配指导)
- FMDB简单实现
- js闭包函数为什么有内存泄漏的问题存在
- java基础(十)形式参数和返回值/链式编程/包/权限修饰符/内部类
- 读取Assets文件夹中的文件
- Android中的Drawable资源—— VectorDrawable
- HDU 1465 (错排公式)
- 线性表-顺序表、链表类模板的实现(数据结构基础 第2周)
- Swift Study Day 2
- 提高项目16.2 村民奖金2