前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS之手把手教你学会使用sqlite,并应用于实际开发

iOS之手把手教你学会使用sqlite,并应用于实际开发

作者头像
小蠢驴打代码
发布2018-05-24 13:03:08
1.5K0
发布2018-05-24 13:03:08
举报
文章被收录于专栏:小蠢驴iOS专题

相信大部分的开发者在实际开发中,可能项目都会有要求实现部分的数据的持久化保存,而在移动开发中,基本推荐使用轻量级的关系数据库--sqlite,而FMDB就是基于sqlite封装的第三方开源库, 这里就详细的讲一下iOS中,如何方便的使用FMBD进行项目开发。


数据库的使用步骤一般如下:

1.创建数据库;

2.创建表(如果表不存在);

3.对表进行操作(增、删、改、查);

4.一般有第四步:在3操作完,查询一下结果,看看数据库操作语句写的是否正确;

5.关闭数据库;


下面以实际代码展示如何进行删除操作:

数据库删除语句

如图,可以删除 表:affirRemind 中 type = 7 的所有数据;

-->这里说一下,FMDB中,删除(delete)、插入(insert)、更新(update)和正常的数据库都一样,一条String类型的语句,执行一下就可以;

但是!!坑就坑在 select 语句上!

单纯使用select 语句

如上图所示,如果这是这样写,要获取 recently 表中的数据,会发现 sql语句有执行,但是-->并没有返回值!所以这样的写法,我们并不能获得 select 语句的执行效果,自然不知道 之前如果做的数据库操作语句(增、删、改)是否真正成功!


-->小tips:FMDB中,如何正确使用select语句,并返回我们想要的结果!

select语句查询

tips:1.因为我们要获取select的值,所有需要有返回值-->FMResultSet接收

        2.执行方法:不是直接执行更新语句:executeUpdate

      3.通常查询的结果,是多条数据,通过[result next]方法,可以实现-->一旦还有数据,就会进入循环

      4.查询到的结果,并不能直接显示-->要通过:stringForColumn 转成String类型显示。


贴一下正常的使用方法:因为我们一般在iOS中,使用select语句,不仅仅是检验操作语句,而是要展示数据-->一般是多条数据,所有可以我通常是返回一个数组展示查询结果!

select语句-实际开发中常用方法


接下去就是正确使用FMDB的正确+方便+效率的使用方式了-->sqlite Manager!

大tips!-->这里一定要注意搜索引擎! 用google搜索,用百度的话,相信你会明白为什么现在做开发的都是推荐用google的了!!(不黑百度,请勿喷)

sqlite Manager 安装

这里说一下,sqlite Manager是火狐浏览器的插件,所以先下个火狐,直接用google(不知道如何访问外国网站的回头我可以推荐软件)搜索,安装插件,发现-->“工具”中多了一个sqlite Manager选项,点击他.


打开sqlite

这里,这要我们找到我们当前项目的数据库路径,就能通过sqliteManager打开它-->如何找到sqlite在本地的保存路径?

步骤如下:

1.通过全局查找-->.sqlite

1.在创建数据库的时候,需要沙盒路径,一般通过搜索“.sqlite”,是可以找到当时创建时sqlite的全路径的

2.打印该.sqlFilePath --> 获取全路径-->copy

3.通过“前往文件夹”-->进入第二步保存的路径

前往文件夹

4.拿到sqlite文件.

--------------华丽分割线----------------------------------------------------- 5.copy 该sqlite文件,放到桌面,用sqliteManager打开;

6.指出第5步的错!-->不能copy出来,因为这样就和项目没有关联,当我们在项目中操作的时候,copy出来的项目并没有和程序关联,所有不能更新!

7.通过手动:查找sqlite文件位置-->对照沙盒的数据库路径!

8.选择正确的根目录!

例如:我的sqlite路径

-->这里一定要注意:不能copy,得自己通过项目的沙盒拿到,因为每个人每个项目保存的路径都是不一样的!!不能copy别人的!切记!

9.对照路径一步一步查找

找不到Libaray!

特别注意:资源库是默认隐藏的!需要通过终端打开,不然无法找到沙盒的路径!

10.通过终端打开资源库的隐藏

通过终端-->打开Library

11.看到资源库之后,其他跟随路径一步一步查找就可以了

12.开始操作!


使用sqliteManager进行操作

通过sqliteManager-实现对项目的select查询

这样,我们在项目中,比如执行了删除操作时,在FMDB中,我们可能需要用到FMResultSet,然后还要接收回传的数据,再转换,再打印,最后输出。

但是,此时我们只需要简单的一句Select * from XXX表,就能看的XXX表的数据变化!

以后开发中:1.在项目中写更新(插入、删除、更新)语句;

                     2.先使用sqliteManger查看 操作后的结果-->如果不对,改第一步中的操作语句;

                     3.如果查询正确,在项目中--需要用到select 的地方,再使用FMResultSet;

                     4.对于SQL语句不熟悉的,可以起到检验SQL语句是否正确的效果。因为FMDB中的都是使用@“”,并不会存在编译报错的问题,所有不好检验。


但是,SqliteManger只能查询,不能进行更新!以删除为例

不能通过外部的sqliteManager影响程序内部的数据库

大致意思是:sqliteManager是外部的软件,不能通过外部操作,影响内部(程序)的数据库信息-->没有写的权限,只有读的权限;

但是-->我们需要用到SqliteManager,只要我们再项目中,进行更新操作之后,能直接使用select检查操作完的结果就行了!特别是对于我们现在的项目--即时通讯,需要做到数据的持久性保存,经常需要操作数据库,而找了好久都没发现有对SqliteManager有详细解释或者用法说明的,所有做了一些补充,希望能帮助真正有需要的人~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.02.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用sqliteManager进行操作
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档