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. 英语好一点,会沾光不少。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...