FMDB的操作
#import "ZYDataManager.h"
#import "JSSportModel.h"
FMDatabase *db = nil; @implementation ZYDataManager
+(NSString *)dbFilePath
{
return [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.sqlite"];
} +(FMDatabase *)getDataBase
{
//第一次打开数据库时,db对象不存在,需要创建
if (db == nil) {
db = [FMDatabase databaseWithPath:[self dbFilePath]];
}
return db;
}
//
+(void)createTable
{
NSLog(@"%@",NSHomeDirectory());
if (![db open]) {
NSAssert(NO, @"数据库打开失败");
}
//设置是否缓存数据
[db setShouldCacheStatements:YES]; //判断表是否存在
if (![db tableExists:@"people"])
{
if (![db executeUpdate:@"create table if not exists sportTable(id INTEGER PRIMARY KEY, date TEXT, sportArray TEXT);"])
{
NSLog(@"数据表创建失败");
}
} } //
+(void)addNewJSSport:(JSSportModel *)JSModel
{
if (![db open]) {
NSAssert(NO, @"数据库打开失败");
} if (![db tableExists:@"people"]) {
[self createTable];
}
//?对应的字段值必须是(OC中字符串)
if (![db executeUpdate:@"insert into sportTable (date, sportArray) values (?,?)",
JSModel.dateStr,JSModel.arrayStr])
{
NSLog(@"插入数据失败");
}
[db close];
} +(NSMutableArray *)getAllFriend
{
if (![db open]) {
NSAssert(NO, @"数据库打开失败");
} if (![db tableExists:@"sportTable"]) {
return nil;
} NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:];
FMResultSet *rs = [db executeQuery:@"select * from sportTable;"];
//遍历所有满足条件的好友记录
while([rs next])
{
JSSportModel *jssportModel = [[JSSportModel alloc] init];
// jssportModel.rowId = [rs intForColumn:@"id"];
jssportModel.dateStr = [rs stringForColumn:@"date"];
jssportModel.arrayStr = [rs stringForColumn:@"sportArray"];
//保存好友记录
[array addObject:jssportModel]; } [rs close];
[db close];
return array ;
}
//
//+(void)deleteOneFriend:(Friend *)aFriend
//{
// if (![db open]) {
// NSAssert(NO, @"数据库打开失败");
// }
//
// if (![db tableExists:@"people"]) {
// NSLog(@"数据表不存在,不要删除");
// }
//
// if([db executeUpdate:@"delete from people where id = ?", [NSNumber numberWithInt:aFriend.rowId]])
// {
// NSLog(@"id = %d的记录删除成功!", aFriend.rowId);
// }
// [db close];
//} @end
#import <Foundation/Foundation.h>
//#import "FMDatabase.h"
//#import "FMDatabaseAdditions.h"
//#import "Friend.h"
@class JSSportModel;
@interface ZYDataManager : NSObject
+(NSString *)dbFilePath;
+(FMDatabase *)getDataBase;
+(void)createTable;
+(void)addNewJSSport:(JSSportModel *)JSModel;
+(NSMutableArray *)getAllFriend;
//+(void)deleteOneFriend:(Friend *)aFriend;
@end
FMDB的操作的更多相关文章
- FMDB的操作(转),这篇比我写的好
直接看吧 http://blog.devtang.com/blog/2012/04/22/use-fmdb/
- 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...
- iOS 数据库操作(使用FMDB)
iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...
- iOS学习笔记(十六)——数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
- 数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
- iOS数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
- IOS FMDB 获取数据库表和表中的数据
ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容. 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了.在网上有很多 ...
- FMDB 数据库
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
- FMDB浅析
一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便. FMDB优 ...
随机推荐
- [转]JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
原文地址:http://www.cnblogs.com/redcreen/archive/2011/05/05/2038331.html java application项目(非web项目) 改进前: ...
- 6.JavaCC官方入门指南-例1
例1:整数加法运算 在这个例子中,我们将判断如下输入的式子是否是一个合法的加法运算: 99 + 42 + 0 + 15 并且在输入上面式子的时候,数字与加号之间的任何位置,都是可以有空格或者换 ...
- 9.python3实用编程技巧进阶(四)
4.1.如何读写csv数据 爬取豆瓣top250书籍 import requests import json import csv from bs4 import BeautifulSoup book ...
- 洛谷P2260 [清华集训2012]模积和(容斥+数论分块)
题意 https://www.luogu.com.cn/problem/P2260 思路 具体思路见下图: 注意这个模数不是质数,不能用快速幂来求逆元,要用扩展gcd. 代码 #include< ...
- HTML 中img标签不显示
异常 图片请求响应吗: 403, url响应如下: Request Method: GET Status Code: 403 Forbidden Remote Address: ***.***.**. ...
- anaconda换源及创建虚拟环境
0x01:换源,依次输入一下两条命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/fr ...
- 矩阵快速幂之Kiki & Little Kiki 2
题意是:给出一串01串,每一秒,每个位置得灯会根据左边那个灯得状态进行改变,(第一个得左边为最后一个)如果左边为1,那么自己就会改变状态,左边为0则不用,问n秒改01串的状态 ///// 首先,我们发 ...
- Mybatis全局配置文件详解(三)
每个基于Mybatis应用都是以一个SqlSessionFactory实例为中心.SqlSessionFactory实例可以由SqlSessionFactoryBuild获得,而SqlSessionF ...
- (day55)七、查询优化、MTV和MCV、choices、AJAX、序列化
目录 一.ORM查询优化 (一)only与defer (1)only (2)defer (二)select_related与prefatch_related (1)select_related (2) ...
- 【BZOJ3600】没有人的算术(替罪羊树+线段树)
点此看题面 大致题意: 定义任意数对\(>0\),数对之间比大小先比第一位.后比第二位,一开始数列全为\(0\),要求你支持\(a_k=(a_x,a_y)\)和询问区间最大值所在位置两种操作. ...