文档章节

ios中SQLite的重构封装

MrBryant24
 MrBryant24
发布于 2014/04/24 17:23
字数 511
阅读 289
收藏 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
广州
程序员
私信 提问
iOS 数据库比较:SQLite vs. Core Data vs. Realm

如果你想开发一个能够快速运行并没有Bug的伟大应用,你就必须得仔细的考虑一下你的应用的各个方面。有这么一个你必须解决的方面是怎样存储和查询大数据,那么你就很可能会使用到数据库。在大...

oschina
2016/02/20
8.4K
17
将sqlite数据库复制到用户目录

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

于赟
2012/11/18
0
0
源码推荐: SQLite for iOS

虽然iOS支持coredata,它是SQLite的封装,但用惯了SQL的人可能会觉得陌生。其实没有coredata的时候,就是直接操作SQLite的,这儿介绍两个开源项目,就是直接操作SQLite的,我想你们一定会喜欢...

长平狐
2012/08/13
145
0
iOS学习之sqlite的创建数据库,表,插入查看数据

iOS sqlite数据库操作。步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3....

知行合一100
2012/06/29
0
0
使用UniDAC在Delphi XE4中开发iOS应用

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

vga
2014/06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习心得《稻盛和夫经营学》的读后感2300字

学习心得《稻盛和夫经营学》的读后感2300字: 作者:张宪军;稻盛和夫信奉明朝王阳明的一句话:良知没处,万法难度。人们把它理解为管理者要有在纯正心态下要有好的做事方法,不然是很难成功...

原创小博客
21分钟前
0
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
42分钟前
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0
Win10 下安装Win7双系统

很多人买了预装64位Win8/8.1的电脑后想重装(或者再安装一个)Win7系统,但是折腾半天发现以前的方法根本不奏效。这是因为预装Win8/8.1的电脑统一采用了UEFI+GPT引导模式,传统的BIOS(Legacy...

yaly
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部