三种数据库总结:sqlite、FMDB、CoreData

 
1、sqlite数据库(C语言)需要方法和属性:
 (1)数据类型:
–INTEGER 有符号的整数类型
–REAL 浮点类型
–TEXT 字符串类型,采用UTF-8和UTF-16字符编码
–BLOB 二进制大对象类型,能够存放任何二进制数据

(2)属性:

   sqlite *_db;           //自己定义一个sqlite的成员变量.进行增删改查时要用
     SQLITE_OK             //获取结果集,查询前准备,检测SQL语句是否正确
             SQLITE_ROW               // 从结果集中一条条的取数据时,判断是否还有下一条     
             SQLITE_DONE              //  往结果集中一条条的绑定数据时,判断数据是否全部绑定结束
  (3)方法:
sqlite3_open(fileName.UTF8String, &_db);//打开或者创建一个数据
 
         sqlite3_exec(_db, sql, NULL, NULL,&error);//不返回结果集的语句,该函数进行insert,delete,update操作.
 
          查询操作select ,带结果集的查询语句,会返回出结果,从表中查询到的数据都会放到stmt结构体中
    sqlite3_prepare_v2(_db, sql, -1, &stmt, NULL);     //做查询前准备,检测SQL语句是否正确
 
    sqlite3_bind_text(statement, 1, [nsdate UTF8String], -1, NULL)   //绑定参数
 
    sqlite3_step(stmt)    //提取查询到的数据,一次提取一条,通过循环可以取出所有数据
     
    sqlite3_column_text(stmt, 0)   //取出第0列的数据.
 
    sqlite3_finalize(stmt);              //清理结果集
 
  sqlite3_close(&_db);         //关闭数据库
 
    单例模式:(这里主要用来保证初始化的数据库是唯一的,只要创建了一次,那么它就不会被再创建)

+ (NoteDAO*)sharedManager

{

static dispatch_once_t once;

dispatch_once(&once, ^{

sharedManager = [[self alloc] init];

[sharedManager   createEditableCopyOfDatabaseIfNeeded]; }

);

return sharedManager;

}

2、FMDB第三方数据库,对sqlite进行了封装

(1)需要的对象:

FMDatabase:对象就代表一个单独的SQLite数据库用来执行SQL语句

         FMResultSet:使用FMDatabase执行查询后的结果集
 
         FMDatabaseQueue:用于在多线程中执行多个查询或更新,它是线程安全的

(2)需要的方法:

执行SQL语句:

<1>使用:(需要FMDatabase *db成员变量)
     创建或打开:FMDataBase类

self.db = [FMDatabase databaseWithPath:fileName];

[self.db open];

[self.db executeUpdate:@“CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT,age INTEGER)”];

[self.db executeUpdate:@"INSERT INTO t_student(name , age) VALUES(‘admin’,‘10')];

<2>查询:FMResultSet类

1.查询

FMResultSet *set = [self.db  executeQuery:@"SELECT * FROM t_student;"];

2.取出数据         即 {type}ForColumnIndex:

while ([set next])

{

取出姓名

NSString *name = [set stringForColumnIndex:1];

取出年龄

int age = [set intForColumnIndex:2];

NSString *name = [set stringForColumn:@"name"];

int age = [set intForColumn:@"age"];

NSLog(@"name = %@, age = %d", name, age);

}

<3>关闭数据库

[self.db close];

3、CoreData数据库框架:
 
(1)需要的对象

(1)NSManagedObjectContext(被管理的数据上下文)

操作实际内容(操作持久层)

作用:插入数据,查询数据,删除数据

(2)NSManagedObjectModel(被管理的数据模型)

数据库所有表格或数据结构,包含各实体的定义信息

作用:添加实体的属性,建立属性之间的关系

操作方法:视图编辑器,或代码

(3)NSPersistentStoreCoordinator(持久化存储助理)

相当于数据库的连接器

作用:设置数据存储的名字,位置,存储方式,和存储时机

(4)NSManagedObject(被管理的数据记录)

相当于数据库中的表格记录

(5)NSFetchRequest(获取数据的请求)

相当于查询语句

(6)NSEntityDescription(实体结构)

相当于表格结构

(2)需要的方法:

        //获取实体对象

       NSManagedObject *object = [NSEntityDescription insertNewObjectForEntityForName:@“ClassName” 
       inManagedObjectContext:self.managedObjectContext];
           //创建请求对象   
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@“ClassName”];                            
 
//创建排序对象
NSSortDescriptor *ageSort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]
[request setSortDescriptors:@[ageSort]];
 
//取出所有的数据
NSArray *fetcheObjects = [self.managedObjectContext executeFetchRequest:request error:&error];

iOS:三种数据库的小总结的更多相关文章

  1. qlserver、Mysql、Oracle三种数据库的优缺点总结

    这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下   一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...

  2. MySQL - 常见的三种数据库存储引擎

    原文:MySQL - 常见的三种数据库存储引擎 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧. ...

  3. MySQL、SqlServer、Oracle 三种数据库的优缺点

    MySQL.SqlServer.Oracle 三种数据库的优缺点 一.MySQL 优点: 缺点: 二.SqlServer 优点: 缺点: 三.Oracle 优点: 缺点: 一.MySQL 优点: 体积 ...

  4. MySQL、SqlServer、Oracle,这三种数据库的优缺点,你知道吗?

    盘点MySQL.SqlServer.Oracle 三种数据库优缺点 MySQL SqlServer Oracle 一.MySQL 优 点 体积小.速度快.总体拥有成本低,开源:支持多种操作系统:是开源 ...

  5. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...

  6. IOS三种归档(NSKeyArchieve)的总结

    IOS三种归档(NSKeyArchieve)的总结 归档是一种IOS中常用来存储文件的一种方法,在面向对象的语言中,归档也就实际上可以将一切对象存储在文件中,以下是IOS开发中常见的三种文件归档方式, ...

  7. 三种数据库访问——Spring3.2 + Hibernate4.2

    前三篇随笔中介绍了 用原生的JDBC访问数据库.一种高效的数据库连接池druid.用Spring的JDBC框架访问数据库. 本文继续介绍第三种数据库访问的解决方案:Spring3.2 + Hibern ...

  8. 三种数据库访问——Spring JDBC

    本篇随笔是上两篇的延续:三种数据库访问——原生JDBC:数据库连接池:Druid Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...

  9. 三种数据库日期转字符串对照sql server、oracle、mysql(V4.11)

    三种数据库日期转换对照: http://blog.csdn.net/zljjava/article/details/17552741 SQL类型转换函数:cast(type1 as type2) 数据 ...

随机推荐

  1. DotNetOpenAuth实践之Webform资源服务器配置

    系列目录: DotNetOpenAuth实践系列(源码在这里) 上篇我们讲到WebApi资源服务器配置,这篇我们说一下Webform下的ashx,aspx做的接口如何使用OAuth2认证 一.环境搭建 ...

  2. 从函数调用的角度,探讨JavaScript中this的用法

    js函数调用方式大概可分为:函数调用,构造器调用,call或apply,方法调用四种方式.下面结合一些基础概念和实测代码,从函数调用的角度,探讨JavaScript中this的用法. 1. new对函 ...

  3. loadrunner中大小写字符转换函数封装:

    //封装ConvertToXXX函数: int ConvertToUpper(char * sInput, char * sNew) { sInput = (char *)strupr(sInput) ...

  4. learn_requests

    # -*- coding: utf-8 -*- import requests URL_IP = 'http://localhost:8000/ip' URL_GET = 'http://localh ...

  5. vue 阻止表单默认事件

    方式一: <form autocomplete="off" @submit.prevent="onSubmit"> <input type=& ...

  6. shell 空间利用

    root #df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda3 3.3G 1.7G 1.5G 54% /

  7. iOS 9音频应用播放音频之ios9音频基本功能

    iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类.虽然AVAudioPlayer类不能播放网 ...

  8. Unity Shader 之 渲染流水线

    Unity Shader 之渲染流水线 什么是渲染流水线 一个渲染流程分成3个步骤: 应用阶段(Application stage) 几何阶段(Geometry stage) 光栅化阶段(Raster ...

  9. 动态规划:部分和问题和数字和为sum的方法数

    很久之前看过这个题目,但是没有仔细整理,直到现在看基础才想到这两个题.这两个题非常经典也非常类似.接下来分别介绍. 部分和问题 题目描述 给定整数a1.a2........an,判断是否可以从中选出若 ...

  10. [P3759][TJOI2017]不勤劳的图书管理员(分块+树状数组)

    题目描述 加里敦大学有个帝国图书馆,小豆是图书馆阅览室的一个书籍管理员.他的任务是把书排成有序的,所以无序的书让他产生厌烦,两本乱序的书会让小豆产生 这两本书页数的和的厌烦度.现在有n本被打乱顺序的书 ...