0227 数据库的知识

.h

//

//  DBOperation.h

//  2DataBaseSecond

//

//  Created by Cecilia on 14-10-16.

//  Copyright (c) 2014年 Cecilia. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "FMDatabase.h"

#import "ContactssModel.h"

@interface DBOperation : NSObject{

FMDatabase *_db;

}

//单例

-(void)createTable;

+(DBOperation *)shareDBOperation;

//插入

-(void)insertDataWithModel:(ContactssModel *)um;

//删除

-(void)deleteDataWithModel:(ContactssModel *)um;

//修改:update

-(void)updateDataWithModel:(ContactssModel *)um;

//查询是否有某条数据

-(BOOL)isExistWithModel:(ContactssModel *)um;

// 查询某一类数据   Patient Consult Friends

-(NSMutableArray *)FindDataFromdbWithType:(NSString *)TypeStr;

//仅仅插入数据  如果有 不修改

-(void)OnlyinserDataWitModel:(ContactssModel *)model;

//查询所有

-(NSMutableArray *)selectAllData;

//查询某一条数据

-(ContactssModel *)getDataFormodel:(NSString *)ID;

// 返回一类数据  比如患者 或者好友

-(NSMutableArray * )FindDataFromdbWithType:(NSString *)TypeStr;

@end

.m

//

//  DBOperation.m

//  2DataBaseSecond

//

//  Created by Cecilia on 14-10-16.

//  Copyright (c) 2014年 Cecilia. All rights reserved.

//

#import "DBOperation.h"

#import "FMDatabase.h"

#import "ContactssModel.h"

#import <CommonCrypto/CommonDigest.h>

@implementation DBOperation

//非标准单例

+(DBOperation *)shareDBOperation{

static DBOperation *db = nil;

@synchronized(self){   //同步

if (db == nil) {

db = [[self alloc]init];

}

return db;

}

}

// 删除 某一个表

-(void)deletetableFor:(NSString * )tablename{

NSString  *sttr =[NSString stringWithFormat:@"DROP TABLE %@",tablename];

[_db executeUpdate:sttr];

}

//初始化

-(id)init{

if (self == [super init]) {

//创建数据库

NSString *paths =NSHomeDirectory();

NSString *loginInfo =@"zhege difang  shi jiashuju ";

//[[NSUserDefaults standardUserDefaults] valueForKey:@"Uuid"];

const char *cStr = [loginInfo UTF8String];

unsigned char result[16];

CC_MD5(cStr, (CC_LONG)strlen(cStr), result);

NSString* MD5 =  [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],result[8], result[9], result[10], result[11],result[12], result[13], result[14], result[15]];

paths =[NSString stringWithFormat:@"%@/Documents/%@.db",paths,MD5];

NSLog(@"path = %@",paths);

_db = [[FMDatabase alloc]initWithPath:paths];

BOOL ret = [_db open];

if (ret) {

//打开数据库成功 -- > 创建表

[self createTable];

}

}

return self;

}

#pragma mark - 数据库操作

//1.创建表  user 表

-(void)createTable{/*

Uuid; // 用户的uuid

@property (strong ,nonatomic) NSString * mobile; // 用户的电话号码

@property (strong ,nonatomic) NSString * realeName; // 用户的 名字

@property (strong ,nonatomic) NSString * photo; //  x用户的头像

@property (strong ,nonatomic) NSString * Type; //

*/

NSString *str = @"create table if not exists user(uuid,mobile,realeName,photo,Type)";

BOOL ret = [_db executeUpdate:str];

if (ret) {

NSLog(@"表创建成功");

}

else{

NSError *error =  _db.lastError;

NSLog(@"表创建失败,%@",error);

}

}

//增加 修改

-(void)insertDataWithModel:(ContactssModel *)um{

//    判断当前数据库中是否已经有该条数据

BOOL isHas = [self isExistWithModel:um];

//如果没有 --> 执行插入操作

if (!isHas) {

NSString *str = @"insert into user values(?,?,?,?,?)";

BOOL ret = [_db executeUpdate:str,um.Uuid,um.mobile,um.realeName,um.photo,um.Type];

if (ret) {

NSLog(@"插入成功");

}

else{

NSLog(@"插入失败");

}

}

//如果有 --> 执行修改操作

else{

[self updateDataWithModel:um];

}

}

// 只增加

-(void)OnlyinserDataWitModel:(ContactssModel *)model{

//    判断当前数据库中是否已经有该条数据

BOOL isHas = [self isExistWithModel:model];

//如果没有 --> 执行插入操作

if (!isHas) {

NSString *str = @"insert into user values(?,?,?,?,?)";

BOOL ret = [_db executeUpdate:str,model.Uuid,model.mobile,model.realeName,model.photo,model.Type];

if (ret) {

NSLog(@"插入成功");

}

else{

NSLog(@"插入失败");

}

}

}

//删除

-(void)deleteDataWithModel:(ContactssModel *)um{

//    NSString *str = @"delete from user where ID=?";

//    BOOL ret = [_db executeUpdate:str,um.ID];

//    if (ret) {

//        NSLog(@"删除成功");

//    }

//    else{

//

//    }

}

//修改:update

-(void)updateDataWithModel:(ContactssModel *)um{

// 修改数据uuid,mobile,realeName,photo,Type

NSString *str = @"update user set mobile=?,realeName=?,photo=?,Type=? where uuid=? ";

BOOL ret = [_db executeUpdate:str,um.mobile ,um.realeName,um.photo,um.Type ,um.Uuid];

if (ret) {

NSLog(@"修改成功");

}

else{

NSLog(@"修改失败");

}

//

}

//查询:select

//1.查询是否有某条数据

-(BOOL)isExistWithModel:(ContactssModel *)um{

um.Uuid =[um.Uuid stringByReplacingOccurrencesOfString:@"aaf98f89516bf50b015174e9d5ea1110#" withString:@""];

um.Uuid  =[NSString stringWithFormat:@"aaf98f89516bf50b015174e9d5ea1110#%@",um.Uuid];

NSString *str = @"select *from user where uuid=?";

//FMResultSet:查询结果集合

FMResultSet *set = [_db executeQuery:str,um.Uuid];

//[set next] --> 如果有进行一条,进入到循环里,否则,不进循环

if ([set next]) {

return YES;

}

else{

return NO;

}

}

-(NSMutableArray *)FindDataFromdbWithType:(NSString *)TypeStr{

NSMutableArray * dataArrAy =[[NSMutableArray alloc]init];

NSString *str = @"select *from user where Type=?";

//FMResultSet:查询结果集合

FMResultSet *set = [_db executeQuery:str,TypeStr];

//[set next] --> 如果有进行下一条,进入到循环里,否则,不进循环

if ([set next]) {

ContactssModel * model  =[[ContactssModel alloc]init];

int  numbercolumn = 0;

model.Uuid =[set objectForColumnIndex:numbercolumn];numbercolumn++;

model.mobile =[set objectForColumnIndex:numbercolumn];numbercolumn++;

model.realeName  =[set objectForColumnIndex:numbercolumn];numbercolumn++;

model.photo  =[set objectForColumnIndex:numbercolumn];numbercolumn++;

model.Type  =[set objectForColumnIndex:numbercolumn];numbercolumn ++;

[dataArrAy addObject:model];

}else{

}

return dataArrAy;

}

//获取 某一条数据

-(ContactssModel *)getDataFormodel:(NSString *)ID{

ID =[ID stringByReplacingOccurrencesOfString:@"aaf98f89516bf50b015174e9d5ea1110#" withString:@""];

ID  =[NSString stringWithFormat:@"aaf98f89516bf50b015174e9d5ea1110#%@",ID];

ContactssModel * Friend =[[ContactssModel alloc]init];

NSString *str = @"select *from user where uuid=?";

//FMResultSet:查询结果集合

FMResultSet *set = [_db executeQuery:str,ID];

int numberummInde = 0;

if([set next]){

Friend.Uuid  =[set objectForColumnIndex:numberummInde];numberummInde++;

Friend.mobile  =[set objectForColumnIndex:numberummInde];numberummInde++;

Friend.realeName  =[set objectForColumnIndex:numberummInde];numberummInde++;

Friend.photo  =[set objectForColumnIndex:numberummInde];numberummInde++;

Friend.Type  =[set objectForColumnIndex:numberummInde];numberummInde++;

numberummInde =0;

}

return  Friend;

}

//2.查询所有  获取所有数据

-(NSMutableArray *)selectAllData{

NSMutableArray *arr = [[NSMutableArray alloc]init];

//

//    NSString *str = @"select *from user";

//    FMResultSet *set = [_db executeQuery:str];

//    while ([set next]) {

//              [arr addObject:Friend];

//    }

return arr;

}

@end

//模型

#import <Foundation/Foundation.h>

@interface ContactssModel : NSObject

// uuid  mobile realName photo

@property (strong ,nonatomic) NSString * Uuid; // 用户的uuid

@property (strong ,nonatomic) NSString * mobile; // 用户的电话号码

@property (strong ,nonatomic) NSString * realeName; // 用户的 名字

@property (strong ,nonatomic) NSString * photo; //  用户的头像

@property (strong ,nonatomic) NSString * Type; // 用户的类型   患者    医生

+(id)MakeModelWithDic:(NSDictionary *)Dic;

@end

#import "ContactssModel.h"

@implementation ContactssModel

+(id)MakeModelWithDic:(NSDictionary *)Dic{

/*

@property(strong,nonatomic)NSString * Uuid;

@property(strong,nonatomic)NSString * mobile;

@property(strong,nonatomic)NSString * realeName;

@property(strong,nonatomic)NSString * photo;

*/

//   static  ContactssModel * demodel;

//    static dispatch_once_t demodelClassonce;

//     dispatch_once(&demodelClassonce, ^{

//     demodel =[[ContactssModel alloc]init];

//

// });

ContactssModel * model =[[ContactssModel alloc]init];

model.Uuid =[NSString stringWithFormat:@"aaf98f89516bf50b015174e9d5ea1110#%@",[Dic objectForKey:@"uuid"]];

model.Uuid =[model.Uuid stringByReplacingOccurrencesOfString:@"aaf98f89516bf50b015174e9d5ea1110#" withString:@""];

model.Uuid =[NSString stringWithFormat:@"aaf98f89516bf50b015174e9d5ea1110#%@",model.Uuid];

model.mobile =[NSString stringWithFormat:@"%@",[Dic objectForKey:@"mobile"]];

model.realeName =[NSString stringWithFormat:@"%@",[Dic objectForKey:@"realName"]];

model.photo =[NSString stringWithFormat:@"%@",[Dic objectForKey:@"photo"]];

return  model;

}

@end

时间: 2024-10-17 16:38:19

0227 数据库的知识的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

SQL数据库基础知识-巩固篇&lt;一&gt;

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

数据库基本知识

1.数据库系统=数据库管理系统(管理数据库的工具)(DBMS,DataBase Management System)+数据库(DataBase)+管理员 2.数据库的概念:对大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的库. 3.专业的数据库:Oracle.DB2.SQL Server.My Sql. 其中,  My Sql是最流行的,共鞥足够强大,足以应付web应用. 4.Oracle公司中文名:甲骨文公司. 5.它是一个关系型数据库.建立在关系模型上数据库系统. 关系模

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识

   前言 这个是我工作两年多后,再次从最基础的SQL入门开始,认真的学一遍SQL Server,捡漏和巩固都有;因为自己刚开始学的时候,总是心烦气躁,最近换工作,发现1到2年经验,问到基础性的东西还是很多,这个时候需要的是扎实的基础功夫,所以一系列打击+反省后,自己节假日在家从最基础重新认识一下SQL Server,继续沉淀一下.哪里有不对或需深入探讨,请直接留言或者小窗我;欢迎~ (一) 数据库简介   SQL Server环境配置   数据库基础知识 1.什么是数据库,数据库有哪些特点,为

用python处理文本,本地文件系统以及使用数据库的知识基础

主要是想通过python之流的脚本语言来进行文件系统的遍历,处理文本以及使用简易数据库的操作. 本文基于陈皓的:<程序员技术练级攻略> 一.Python csv 对于电子表格和数据库导出文件,比较常见的文件格式是.csv,所以python中的csv模块也是一个比较重要的模块.下面介绍csv常用的方法. 1.csv.reader(csvfile, dialect='excel', **fmtparams) 该函数返回一个reader对象,能够以行遍历的形式遍历行里面的数据. csvfile——需

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

Mysql DBA 高级运维学习笔记-Mysql数据库字符集知识

1.2 Mysql数据库字符集知识 1.2.1 MySQL数据库字符集介绍 简单的说,一套文字符号及其编码.比较规则的集合. MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念.其中,字符集是用来定义MySQL数据字符串的存储方式,而校对规则则是定义比较字符串的方式.前面建库的语句中,CHARACTER SET latin1即为数据库字符集而COLLATE latin1_wedish_ci 为校对字符集,有关字符集详细内容参考mysql手册,第10张字