IOS 数据库
系统自带可以储存字段的字典:
NSUserDefaults *user = [[NSUserDefaults alloc] init];
存 : [user setObject:@"YES" forKey:@"token"];
取:NSString* string=[user objectForKey:@"token"];
FMdb第三方使用 使用前导入第三方框架外还需要导入libsqlite3包
//创建模型
#import <Foundation/Foundation.h> @interface LoadModel : NSObject
@property (nonatomic,retain) NSString * username;
@property (nonatomic,retain) NSString * password;
@end #import "DataCenter.h"
#import "FMDatabase.h"
@implementation DataCenter
{
FMDatabase *_dataBase;
}
+(id)shareDataCenter{
static DataCenter *center = nil;
if(center == nil){
center = [[DataCenter alloc] init];
}
return center;
}
-(id)init{
self = [super init];
if(self){
[self createDB];
}
return self;
}
-(void)createDB{
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dbPath = [array[] stringByAppendingPathComponent:@"CB.db"];
NSLog(@"数据库地址:%@",dbPath);
_dataBase = [[FMDatabase alloc] initWithPath:dbPath];
[_dataBase open]; //用户登录
[self createUserLoadTable]; } //创建表 表名 CBUser 列: username password
-(void)createUserLoadTable{
NSString *sql = @"create table if not exists CBUser (ID integer primary key autoincrement,username text,password text);";
BOOL b = [_dataBase executeUpdate:sql];
if(!b){
NSLog(@"登录表创建失败");
}
} //储存数据 账号 密码
-(void)insertDataWithModel:(LoadModel *)model{
NSString *sql = @"insert into CBUser (username,password) values (?,?)";
BOOL b = [_dataBase executeUpdate:sql,model.username,model.password];
if(!b){
NSLog(@"等录数据加失败");
}
}
//查找数据
-(LoadModel *)selectDataWithModel:(NSString *)username{
NSString *sql = @"select * from CBUser where username = ?";
FMResultSet *set = [_dataBase executeQuery:sql,username];
LoadModel *model = [[LoadModel alloc] init];
while (set.next) {
//取出名字和密码
model.username = [set stringForColumn:@"username"];
model.password = [set stringForColumn:@"password"];
}
return model;
}
-(BOOL)selectDataBoolWithNum:(NSString *)username{
NSString *sql = @"select * from CBUser where username = ?";
FMResultSet *set = [_dataBase executeQuery:sql,username];
while (set.next) {
return YES;
}
return NO;
}
//删除表
-(void)deleteAllData{
NSString *sql = @"delete from CBUser";
[_dataBase executeUpdate:sql];
}
//获取全部数据
-(NSArray *)selectAllData{
NSString *sql = @"select * from CBUser";
FMResultSet *set = [_dataBase executeQuery:sql];
NSMutableArray *array = [[NSMutableArray alloc] init];
while (set.next) {
LoadModel *model = [[LoadModel alloc] init];
model.username = [set stringForColumn:@"username"];
model.password = [set stringForColumn:@"password"];
[array addObject:model];
}
return array;
}
//删除某一个数据
-(void)deleteDataWithName:(NSString *)username{
NSString *sql = @"delete from CBUser where username = ?";
[_dataBase executeUpdate:sql,username];
} @end //调用
DataCenter* _center=[DataCenter new];
LoadModel* model=[[LoadModel alloc]init];
model.username=@"";
model.password=@"";
[_center insertDataWithModel:model];
IOS 数据库的更多相关文章
- iOS 数据库操作(使用FMDB)
iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...
- [iOS]数据库第三方框架FMDB详细讲解
[iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封 ...
- IOS数据库操作SQLite3使用详解(转)
iPhone中支持通过sqlite3来访问iPhone本地的数据库.具体使用方法如下1:添加开发包libsqlite3.0.dylib首先是设置项目文件,在项目中添加iPhone版的sqlite3的数 ...
- IOS数据库FMDB增、删、改、查的使用【原创】
http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FM ...
- iOS数据库操作之coredata详细操作步骤
CHENYILONG Blog iOS数据库操作之coredata详细操作步骤 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/ ...
- 分享一段ios数据库代码,包括对表的创建、升级、增删查改
分享一段ios数据库代码.包括创建.升级.增删查改. 里面的那些类不必细究,主要是数据库的代码100%可用. 数据库升级部分,使用switch,没有break,低版本一次向高版本修改. // DB.h ...
- ios数据库
1. ios数据库管理软件 ios使用的数据库是sqlite 管理软件有2种, 我只记得一种, 名字叫做 MesaSQLite 2. sqlite数据库 2.1.修改表结构 ①:更改字段类型长度 AL ...
- iOS数据库操作流程
SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib 1.导入流程 2.iOS中操作数据库的流程 打开数据库 准备SQL数据库 执行SQL数据库 语句完结 关闭数据库 ...
- iOS数据库离线缓存思路和网络层封装
一直想总结一下关于iOS的离线数据缓存的方面的问题,然后近期也简单的对AFN进行了再次封装.全部想把这两个结合起来写一下.数据展示型的页面做离线缓存能够有更好的用户体验,用户在离线环境下仍然能够获取一 ...
- iOS 数据库sqlite3.0操作--超简单--看我就够啦
iOS客户端数据存储的方式有很多,下面主要是介绍苹果自带的sqlite3.0的使用方法. 首先导入sqlite3.0的框架.然后导入头文件#import <sqlite3.h>就行了 下面 ...
随机推荐
- MSSQL 查询数据库所有表的大小, 有助于删除一些没用的表
SELECT b.name AS tablename , a.rowcnt AS datacount FROM sysindexes a , sysobjects b WHERE a.id = b.i ...
- 客户端挂载NFS服务器中的共享目录(用户后台上传图片与前台上传图片放在同一个服务器上)
服务器端使用showmount命令查询NFS的共享状态 # showmount -e //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错 # showmount -a //显示已经与客 ...
- Nodejs学习(一)-Nodejs和express的安装和配置
声明我的操作系统是ubuntu环境,直接下载了tar文件进行解压安装,步骤如下 1.nodejs官网下载node-v4.6.0-linux-x86.tar.xz文件. youyuan1980@youy ...
- python基础知识---迭代器、生成器、装饰器
一.迭代器 二.生成器 http://www.cnblogs.com/huxi/archive/2011/07/14/2106863.html def func(): #定义生成器,和普通函数的区别是 ...
- c#判断闰年
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- HRS(CRLF Injection)
[HRS(CRLF Injection)] CRLF是”回车 + 换行”(\r\n)的简称.在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CR ...
- NSURLCache详解和使用
使用缓存的目的是为了使应用程序能更快速的响应用户输入,是程序高效的运行.有时候我们需要将远程web服务器获取的数据缓存起来,以空间换取时间,减少对同一个url多次请求,减轻服务器的压力,优化客户端网络 ...
- Java 如何跳出多重嵌套循环体?
1. 在最外层循环语句前定义一个标号,循环体内任意位置都可以使用带有标号的break语句跳出外层循环,结束整个循环. System.out.println("MainClass1 Start ...
- 关于arduino清空串口缓存(转)
在arduino1.0之前的版本 Serial.flush()的作用是是清空串口缓存( dropping received incoming data).但在1.0之后的版本 Serial.flush ...
- Masonry控制台打印约束冲突问题解决
不知道你是不是视图的布局也是用的第三方Masonry,在使用中是不是也遇到了控制台约束冲突的警告打印,看下图: 从输出的信息可以知道,有的控件的约束明显重复了设置,所以指出了是哪个控件,重复设置了哪些 ...