使用FMDB教程

本教程针对于第一次接触开源库FMDB的同胞,从如何下载源码如何导入工程如何创建数据库如何写增删改查开始.使用的时最新版本的FMDB v2.3.

此教程开始日期为 2014.5.5

Preparation - 准备工作

首先,你得需要去下载源码  https://github.com/ccgus/fmdb

找到页面中的如是地方后下载ZIP包.

解压ZIP包后找到src文件夹

进入文件夹后,将文件夹extra以及fmdb拷贝到你新建的工程文件(默认开启ARC,本人已经不玩non-ARC了^_^)当中.

然后导入数据库的静态库.

之后在***.pch文件中导入头文件供全局使用

此刻已经完成了FMDB的配置以及导入.

Usage - 使用

为了教程的最大简洁性,本人连controller都不会创建,全部都在AppDelegate.m文件中完成所有的基本功能教程:).

请修改AppDelegate.m文件为如下形式:

好了,正式开始使用,首先创建数据库文件,创建一个表并插入一条数据:

至少已经执行成功了,我们来查看下沙盒中是否有创建好的数据库文件.

双击YouXianMing.db,发现数据被插进去了哦.

再次执行一遍程序,后打印如下:

这很正常,因为你已经创建了一个表了嘛:).

修改下源码再次插入一条记录:

检查一下:

以上就完成了基本的创建表以及插入两条记录的任务.

我们来执行查询操作.

使用起来就是这么方便呢.

查询操作的方法有着如下几种:

如何使用请自己查询文档,这也是我们作为程序员必须具备的素质,不能什么时候都靠别人哦.

我们来执行更新操作.

请注意,上面的更新方法并不推荐,本人只是为了最大限度的便于读者理解而直接这么写的,实际过程中是绝对不推荐这么玩的.

以下是官网推荐的一些使用方法:

增,改,查都有了,就差删除了,来试试如何删除吧.

你或许有一个疑问,为何删除属于 excuteUpdate 方法,这个很简单,请看官方文档:

Executing Updates

Any sort of SQL statement which is not a SELECT statement qualifies as an update. This includes CREATE, UPDATE, INSERT, ALTER, COMMIT, BEGIN, DETACH, DELETE, DROP, END, EXPLAIN, VACUUM, and REPLACE statements (plus many more). Basically, if your SQL statement does not begin with SELECT, it is an update statement.

任何一条SQL语句,如果不是SELECT,那就是update了.可用于update的包括了CREATE, UPDATE, INSERT, ALTER, COMMIT, BEGIN, DETACH, DELETE, DROP, END, EXPLAIN, VACUUM以及REPLACE.如果你的SQL语句不是做查询用的,那就是update语句,需要使用update系列的方法:).

Conclusion - 结论

FMDB就这么结束了么?差不多吧,增删改查创建表创建数据库都包含了,剩下的就是使用细节,诸如线程安全,如何操作了,本篇教程属于入门级别,能让你会用FMDB,至于如何详细的使用,就需要你自己细致的查看官方文档了.转载请注明出处 http://www.cnblogs.com/YouXianMing/

不提供源码是为了让读者自己去敲代码而已,截图已经把注释写得非常清晰了,模仿是最好的老师:)

使用FMDB最新v2.3版本教程的更多相关文章

  1. 爬虫--selenium之 chromedriver与chrome版本映射表(最新至v2.46版本chromedriver)

    本文主要整理了selenium的chromedriver与chrome版本映射表,并且持续更新中..... 1.selenium之 chromedriver与chrome版本映射表(最新至v2.46版 ...

  2. RDIFramework.NET V2.9版本多语言的实现

    RDIFramework.NET V2.9版本多语言的实现 现在是国际化时代,软件也不能落后.一个公司里很可能会有老外,也可能有台湾的朋友,他们用软件的习惯都不一样,若同样一个软件同时能适应多种语言文 ...

  3. RDIFramework.NET V2.9版本 WinFom部分新增与修正的功能

    RDIFramework.NET  V2.9版本 WinFom部分新增与修正的功能 转眼间RDIFramework.NET框架走了快6个年头了,随着一个版本一个版本的升级改造,现在已经越来越完美了.使 ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布

    RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布 全新体验.全新感觉.2015钜献! 继上个版本“RDIFramework.NET V2.8版本发布”5 ...

  5. cocos引擎v2.1版本android 编译问题解决办法 (cocos2d-x-3.4rc1)

    下载了最新版的cocos v2.1.2beta,使用cocos.exe来创建项目,而且在最下方的附件功能里还勾选了“支持x86架构cpu”这个选项,导致使用build_native.py编译不通过,以 ...

  6. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

  7. 最新Android系统版本与API等级对应关系表

    最新Android系统版本与API等级对应关系表 从Android官网拷过来的,方便查阅... 官网地址:https://developer.android.com/guide/topics/mani ...

  8. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

  9. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布

    (新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...

随机推荐

  1. php查询某个字段指定值的所有条数

    一.查询某个字段指定值的所有条数 以name叫张三的人为例,查询表中叫张三的人的总数 $where['name']='张三'; $count=M('table')->where($where)- ...

  2. 使用autoconf完成编译配置

    使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefi ...

  3. JAVA学习6:用Maven创建Spring3 MVC项目

    一.      环境 spring-framework-3.2.4.RELEASE jdk1.7.0_11 Maven3.0.5 eclipse-jee-juno-SR2-win32 二.      ...

  4. Java万年历,输入年月获取该年月日历表

    //输入年份和月份,打印出这个月的日历表 /* 1.1900年1月1日是星期一 2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天 1) 3.总天数%7得出从星期几开始 注:计 ...

  5. loadView 与 viewDidLoad 和 didReceiveMemoryWarning与viewDidUnload 详解

    首先试验下:viewController初始化 分两个支路:initWithNibName加载初始化 及 init 直接初始化: <1>调用initWithNibName加载一个xib界面 ...

  6. 如何下载Red Hat Enterprise Linux系统

    关于如何下载Red Hat Enterprise Linux系统? 这是一个既简单,又复杂的问题.简单是因为我以为她很简单,复杂是因为下载的过程有点复杂的. 相信去Oracle官网下载过东西的同学对下 ...

  7. WEB前端笔记

    HTML+CSS部分 IE6使用PNG的透明问题 解决关键字 DD_belatedPNG_0.0.8a.js Google或百度一下,下载之 <!--[if lte IE 6]> < ...

  8. maven打包报错 ERROR: No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id

    打开pom.xml 在build标签中 增加 <defaultGoal>compile</defaultGoal> 如下: <build><defaultGo ...

  9. TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.Internal.IHttpResponseStreamWriterFactory' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.2.0 ...

    今天调试 asp.net core 2.0 项目时遇到了如下错误: TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.I ...

  10. IT自由职业者的第一个月(下)——为什么放弃5年嵌入式驱动开发转到WEB开发?

        如果单从兴趣来看,其实我对Linux内核,Android中间件的兴趣要高于WEB,何况还有这么多年的经验积累,何必从头探索一个新的技术方向呢?     这里面原因是很多的,最核心的大概是以下4 ...