FMDB使用
FMDBManager.h #import <Foundation/Foundation.h>
#import "FMDatabase.h" @interface FMDBManager : NSObject
{
NSString *dataBasePath;
FMDatabase * fmdbDataBase;//数据库对象
BOOL isFMDBopen;
} + (FMDBManager *)sharedFMDB; // 创建表
-(void)createTable; // 插入记录
-(void)insertTable; // 获取所有记录
-(NSMutableArray *)getList; //删除某人所有信息
-(BOOL)deleteUser; @end FMDBManager.m #import "FMDBManager.h"
#import "userModel.h" #define FMDB_NAME @"test.sqlite3" static FMDBManager *_sharedFMDB = nil; @implementation FMDBManager //共享实例
+(FMDBManager *)sharedFMDB
{ if (_sharedFMDB == nil) {
_sharedFMDB = [[FMDBManager alloc]init];
}
return _sharedFMDB;
} -(id)init
{
self = [super init];
if (self) {
// Custom initialization
[self openDataBase];
}
return self;
} -(void)openDataBase
{
// NSDocumentDirectory (Documents目录下面) NSLibraryDirectory(Library目录下面)
NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
dataBasePath=[[libPaths objectAtIndex:] stringByAppendingPathComponent:FMDB_NAME]; // 创建数据库
fmdbDataBase = [FMDatabase databaseWithPath:dataBasePath];
if ([fmdbDataBase open]) {
isFMDBopen = YES;
} else {
isFMDBopen = NO;
NSLog(@"error when open db");
} } // 判断是否存在表
- (BOOL) isTableOK:(NSString *)tableName
{
FMResultSet *rs = [fmdbDataBase executeQuery:@"select count(*) as 'count' from sqlite_master where type ='table' and name = ?", tableName];
while ([rs next])
{
// just print out what we've got in a number of formats.
NSInteger count = [rs intForColumn:@"count"]; if ( == count)
{
NSLog(@"表不存在");
return NO;
}
else
{
NSLog(@"表已存在");
return YES;
}
} return NO;
} // 创建表
-(void)createTable
{
NSString *strCreatetable = [NSString stringWithFormat:@"CREATE TABLE 'user10086' ('userID' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 'userName' text, 'passWord' text)"]; if (![self isTableOK:[NSString stringWithFormat:@"%@",@"user10086"]])
{
BOOL res = [fmdbDataBase executeUpdate:strCreatetable];
if (!res)
{
NSLog(@"error when creating db table");
}
else
{
NSLog(@"succ to creating db table");
}
} } // 插入数据
-(void)insertTable
{ NSString *strInserttable = [NSString stringWithFormat:@"insert into user10086 (userName, passWord) values(?, ?) "];
BOOL res = [fmdbDataBase executeUpdate:strInserttable,@"testUser",@""]; if (!res) {
NSLog(@"insert error");
} else {
NSLog(@"insert success");
}
} // 获取所有记录
-(NSMutableArray *)getList
{
NSMutableArray *chatList = [[NSMutableArray alloc] init]; NSString *sqlQuery = [NSString stringWithFormat:@"select * from user10086"];
FMResultSet * rs = [fmdbDataBase executeQuery:sqlQuery];
while ([rs next]) { userModel *user = [[userModel alloc] init]; user.userId = [NSString stringWithFormat:@"%d",[rs intForColumn:@"userID"]];
user.userName = [rs stringForColumn:@"userName"];
user.passWord = [rs stringForColumn:@"passWord"]; [chatList addObject:user];
} return chatList;
} //删除某一条记录
-(BOOL)deleteUser
{
NSString *sqlDelete = [NSString stringWithFormat:@"delete from user10086 where userID=%d", ]; return [fmdbDataBase executeUpdate:sqlDelete];
} @end // 使用
[[FMDBManager sharedFMDB]createTable];
[[FMDBManager sharedFMDB]insertTable];
FMDB使用的更多相关文章
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
- 【原】FMDB源码阅读(一)
[原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...
- IOS FMDB 获取数据库表和表中的数据
ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容. 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了.在网上有很多 ...
- 简单的数据库设计及使用(FMDB)
有这样一个需求: 有m个用户公用n个文件,一个用户可能会用到多个文件,一个文件可能被多个用户使用: 如果某个用户离开,那这个用户就不再使用任何文件:如果某个文件没有任何用户使用,就要删除该文件: 已知 ...
- FMDB的使用方法
转自:http://blog.devtang.com/blog/2012/04/22/use-fmdb/ 前言 SQLite (http://www.sqlite.org/docs.html) 是一个 ...
- FMDB 排它锁
-------------------------------------基本操作------------------------------------- #import "ViewCon ...
- [ios]关于用FMDB 操作数据库 删除 tableView 后刷新
刚了解使用fmdb,从数据库获取数据 绑定到一个可变数组classNameItems //从ClassList表取得数据 FMResultSet *classInfo=[db executeQuery ...
- IOS数据存储之FMDB数据库
前言: 最近几天一直在折腾数据库存储,之前文章(http://www.cnblogs.com/whoislcj/p/5485959.html)介绍了Sqlite 数据库,SQLite是一种小型的轻量级 ...
- FMDB第三方框架
FMDB是同AFN,SDWebImage同样好用的第三方框架,它以OC的方式封装了SQLite的C语言API,使得开发变得简单方便. 附上github链接https://github.com/ccgu ...
随机推荐
- pyqt columnView例子学习
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from Py ...
- Block 代替for循环
NSDictionary *aDictionary = [[NSDictionary alloc]initWithObjectsAndKeys:", nil]; [aDictionary e ...
- [转]XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks
感谢: XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks XNOR-Net ImageNet Cl ...
- 计算直线的交点数(set + 打表)
计算直线的交点数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- WEB服务器3--IIS7.0安装和配置
安装Web服务器(IIS) 点击开始菜单->所有程序->管理工具->服务器管理器,启动服务器管理器,界面如下: 在服务器管理器中,选择角色,你将可以看到角色总视图. 点击添加角色,会 ...
- jsp页面获取服务器时间
Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MON ...
- Unity轻量级依赖注入容器
一.前言 Unity是一个轻量级的可扩展的依赖注入容器,支持构造函数,属性和方法调用注入.在Nuget里安装unity
- I/O多路复用之epoll
1.select.poll的些许缺点 先回忆下select和poll的接口 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set ...
- poj 3158kickdown
我是来吐槽poj的!!! 第一次做poj,被题目中的输入输出格式打败了 ,醉了醉了 Description A research laboratory of a world-leading autom ...
- (转) Special members
原地址:http://www.cplusplus.com/doc/tutorial/classes2/ Special members [NOTE: This chapter requires p ...