iOS的FMDB数据库使用

       在iOS开发中,关于本地数据库的类型,大致分为四种:Plist和NSUserDefault(轻量型数据库),这两者一般都是存储数据量较小,数据类型单一的数据,比如保存用户的登录账号、密码等;而FMDB和CoreData则是可以存储数据量较大,数据类型复杂的数据,比如用户表、自定义对象等。本文将简单介绍FMDB的一些使用方法。

一、数据库的创建

        为了操作方便,一般在创建数据库时,我们可以先创建一个单例,再将数据库的相关操作封装在单例中,这样既可以保证访问数据库的一致性,也可以大大的节省时间,减少代码的冗余。

单例的创建

1、我们都知道,做本地数据保存时,一般都是将数据直接保存到手机的沙盒目录中,当然也可以自行写文件存储(在这里就不做介绍了,有兴趣的同学可以自己去尝试)。

数据库的创建

2、在创建完数据库后,接下来便是建表,并将表保存到数据库中。在这里需要注意的是,如果创建的表中存储的字段类型都是一般数据类型,如NSString、NSInteger、BOOL、NSDictionary等时,字段类型直接写成数据类型即可,但是若要存储自定义对象时,字段类型必须写成blob二进制数据类型才能将该对象存储到数据库中。

表的创建

到这里,数据库的创建就已经完成了,接下来将增删改查的方法封装到单例中即可使用。

二、插入数据

       值得注意的是,若插入的表中带自定义对象,该对象在insert语句中必须采用归档的方式进行存储,否则该对象将无法存到数据库中。苹果官方指出,若要将自定义的NSObject存储到本地中,需先遵守NSCoding协议,并实现归档和解档的方法才能将对象里的内容存到本地中。

插入数据

三、删除数据

删除数据

四、查询数据

       查询数据时,如表中带有自定义对象,赋值时应该先解档该字段对应的值方能拿到存储的数据,因为在插入数据时使用了归档的方式,倘若取数据时不解档,拿到的值将会是归档到本地的二进制数据,而不是我们所需要的正常数据。

查询数据

五、更新数据

        更新数据与插入数据的原理其实类似,更新也相当于插入新的数据,所以在这里若操作了自定义对象,还是需要将该对象归档才能进行存储。

更新数据

好了,以上便是FMDB的基本使用方法,若有不同见解或是不懂的同学欢迎留言交流,一起切磋。

你可能感兴趣的:(iOS的FMDB数据库使用)