#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的操作的更多相关文章

  1. FMDB的操作(转),这篇比我写的好

    直接看吧 http://blog.devtang.com/blog/2012/04/22/use-fmdb/

  2. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  3. iOS 数据库操作(使用FMDB)

    iOS 数据库操作(使用FMDB)   iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  4. iOS学习笔记(十六)——数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  5. 数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  6. iOS数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  7. IOS FMDB 获取数据库表和表中的数据

    ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容. 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了.在网上有很多 ...

  8. FMDB 数据库

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  9. FMDB浅析

    一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便. FMDB优 ...

随机推荐

  1. luoguP3258 [JLOI2014]松鼠的新家

    树上差分 树上差分分析 使点x到点y的路径上(链上),全加上一个值,可以选择使用树上差分(不用线段树乱搞.... 首先,和普通的差分一样,要有一个tag.然而,对于一个结点,我们需要求出它全部儿子的t ...

  2. office 小技巧

    1. 数据匹配 VLOOKUP 例一:如图,将左表(sheet1)的e列关联到右表(sheet2),条件为: sheet2.字段名 = sheet1.D 公式:=VLOOKUP(sheet2!D2:D ...

  3. SpringCloud琐碎内容

    SpringCloud提供了很多监控端点,可以使用http://{ip}:{port}/{endpoint}得形式来访问这些端点,从而了解应用程序的运行状况. Actuator提供的端点,如表3-2所 ...

  4. Testng 简介

    Testng是一套开源测试框架,是从Junit继承而来,testng意为test next generation,主要有以下特性: annotations  注释,如 @test @BeforeMet ...

  5. Jsoup获取部分页面数据失败 Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml

    用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static ...

  6. Jenkins根据svn版本号进行构建

    在svn版本url后面加上“@svn版本号”,如@2105 原文:https://blog.csdn.net/jlminghui/article/details/40426849

  7. [LeetCode] 238. Product of Array Except Self 除本身之外的数组之积

    Given an array nums of n integers where n > 1,  return an array output such that output[i] is equ ...

  8. Oracle中如何创建数据库

    Oracle数据库的物理结构与MySQL以及SQLServer有着很大的不同.在使用MySQL或SQLServer时,我们不需要去关心它们的逻辑结构和物理结构. 但是在使用Oracle的时候,我们必须 ...

  9. k8s web终端连接工具

    k8 web terminal 一个k8s web终端连接工具,在前后端分离或未分离项目中心中,也可以把此项目无缝集成,开箱即用. 项目地址:https://github.com/jcops/k8-w ...

  10. navicat远程连接mysql的方法

    navicat远程连接mysql的方法1 先在打开phpmyadmin 添加用户 用户名和密码自己设置 设置如下 2 关闭防火墙service iptables status可以查看到iptables ...