文档章节

ios中SQLite的重构封装

MrBryant24
 MrBryant24
发布于 2014/04/24 17:23
字数 511
阅读 288
收藏 0

<b>

##IOS开发

  1. Controller中的UI层
  2. Controller中的Model层
  3. 服务层(去连接Model跟数据库的中间层)
  4. 数据库层(Sqlite,XML,JSON)
  5. 网络服务器层(包括WebService跟Web数据库,如MySQL或者Oracle)

</b>

C/S分层结构

##IOS中CoreData VS SQLite

CoreData <b>

  • CoreData说实话是一个对如SQLite这样的嵌入式数据库做面向对象的处理
  • CoreData不是一个数据库
  • CoreData只是一个操作数据库的核心框架

CoreData术语中借鉴了Sqlite

###SQLite中的外键约束

CREATE TABLE "t_person" (name text,age integer,height real,id integer PRIMARY KEY,"book_id" integer REFERENCES "t_book"(id) ON DELETE CASCADE)

这段话的解析是:

  • 创建一个t_person的表(里面有id,name,height这3个基本属性),还有一个book_id的属性是连接REFERENCESt_book这个表的(id)属性,t_book中id对应删除选项是CASCADE

  • 删除选项是CASCADE这个字段告诉我们当删除t_book中id=2的那行,那么t_person中book_id等于2那些行都要 对应删除

    • 删除选项除了CASCADE还有 SetNull,SetDefault,Restrict
    • SetNull就是当删除t_book中id=2的那行,那么t_person中book_id等于2那些行的book_id都设置为Null
    • SetDefault就是当删除t_book中id=2的那行,那么t_person中book_id等于2那些行的book_id都不变
    • Restrict限制删除,哪一行都不可以被删除

###CoreData中实体的Relationship

  • 打开CoreData项目的以xcdatamodeld结尾的文件(就是 数据模型管理文件)

  • ![在此输入图片描述][2] [2]: http://static.oschina.net/uploads/space/2014/0424/171736_WyK3_228991.png

    • 不过跟SQLite不一样的是,CoreData绑定的关系,设定的删除选项的以对象与对象之间
    • 而SQLite两个表(对应CoreData的Managerobject)的关系绑定是以对象的属性与属性之间

</b> <b> ##挖坑

###2014年4月24日

晚上再补上,重构的

###2014年4月25日


CoreData的并发跟与RestAPI的作用

© 著作权归作者所有

共有 人打赏支持
MrBryant24
粉丝 1
博文 7
码字总数 3289
作品 0
广州
程序员
将sqlite数据库复制到用户目录

Sqlite如何在IOS开发中应用是本文要介绍的内容,主要是来学习在IOS开发中sqlite数据库的使用方法。sqlite数据库初始化,复制到用户目录,并判断是否数据库已经存在,或者复制是否成功! 在A...

于赟
2012/11/18
0
0
工程中导入sqlite -sqlite 基础教程(1)

sqlite是纯C实现的,所以注定了它是一个跨平台利器,在android与IOS下均能使用,而且完全可以写出通用的代码,方便我们移植。当然Android和IOS下都有封装过的sqlite给开发者使用,不过这样子...

晨曦之光
2012/03/12
0
0
使用UniDAC在Delphi XE4中开发iOS应用

使用UniDAC在Delphi XE4中开发iOS应用   核心提示:Delphi XE4的发布让很多Delphi开发者欣喜若狂,毫无疑问它使得Delphi开发更简单且更容易被理解,而且让开发无论是iPhone、iPad还是iPod的...

vga
2014/06/01
0
0
苹果私有API检查工具开源项目

iOS-private-api-checker 苹果iOS私有API检查工具 Developer tool to scan iOS apps for private API usage before submitting to Apple https://github.com/hustcc/iOS-private-api-checker......

小薇
2015/11/05
0
0
IOS用sqlite的原生代码操作数据库详解 总和两个网页的讲解

ios Sqlite数据库增删改查基本操作 第一个讲解网页的内容 研究了几天的数据库,终于把它给搞出来了。Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的。这是仿照网上的一个例子做...

HillYoung
2014/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
17分钟前
0
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
23分钟前
3
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
23分钟前
2
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
25分钟前
0
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部