swift sqlite3 学习心得

iOS开发中,需要使用sqlite,所以试图学习,但学习过程中似乎是遇到了一点困难:

  1. 在bing.com搜 “swift sqlite”,得到的多是基于某个封装过sqlite的framework(如fmdb),这不是我想要的。我想要的是不用开源的封装,而是直接使用sqlite的API

  2. github上搜 “swift sqlite”,找到的又多是那些framework的“老窝”。它们都是基于sqlite的api,但太成熟太庞大,只能用来膜拜,不能用来学习(至少不适合现阶段的我)。

  3. 翻了好几页,终于找到一个符合预期的sfest 。在其中一个有50行的类中看到了sqlite3_open / sqlite3_prepare_v2 等api的影子。虽然代码不多,但sqlite的使用已可见一斑。现在问题又来了,这几个api的作用是什么,sqlite都有哪些api,以及如何系统掌握sqlite的使用,这些问题在这里又无法得到解决。

  4. 于是,转而去找sqlite的官网,希望能在那里得到第一手的学习资料。经过一番折腾,果然没让我失望,找到了这篇让我期待已久,一语破的的好文:An Introduction To The SQLite C/C++ Interface 关于sqlite的“基本疑问”,在该文中已得到解决,我对sqlite的恐惧也即刻消失了。在c++开发时也曾用过sqlite,但那时用的别人封装过的class,未试图去窥探sqlite的样子,自然也未遇到此文。

关于知识:

  1. 两个object (connection / prepared statement),6个api(基于两个object,实现数据操作)
  2. prepared statement为由text的sql语句“编译”(通过sqlite3_prepare_v2)出来的“可执行程序”,sql语句相当于“源码”,执行该程序,就会对数据进行读/写等操作

关于过程:

  1. 学习新东西,需先清晰确定一个目标,各种努力都指向该目标。因为在学习过程中总是要遇到困难,往往要经过几番“柳暗花明”才能到达到该目标。如果一开始目标就不确定,那很容易在困难重重的过程中放弃目标,毫无收获。
  2. 目标最好还是定在“基础性” “本质性”的知识上,否则学习效果总是有“隔层纱”的不确定感觉。比如,如果我以学习fmdb为目标,而不是直奔sqlite api,就有一种浮于表面/隔靴搔痒之嫌。即便会用fmdb完成功能,总觉得是没有什么收获。
  3. 英语好一点,会沾光不少。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值