iOS FMDB封装实现数据持久化

iOS 里的数据持久化,多人第一反应就是 CoreData 或者直接上 SQLite。但其实,FMDB 也是个挺稳的选择,尤其是用 Objective-C 写项目的时候,用起来更顺手点。

FMDB 的二次封装,就像是把生的食材好,炒熟了端上桌。你直接吃就行,不用自己剁肉洗菜。这篇文章的 LHMFMDBManager,就是这么个“厨师”。封装了一整套数据库操作逻辑,像初始化、建表、插入、查询、更新、删除,基本都打包好了。

比如你想插个用户数据,直接调用 insertObject: 方法,把模型扔进去就完事了。内部会判断你传的对象符不符合协议,自动拼接 SQL、执行语句。查询数据也差不多,封装好了 queryObjectsWithSQL:,返回的就是好的数组,拿来就能用。

封装的核心类是 FMDatabaseFMDatabaseQueue,一个搞连接,一个管线程。你也知道,多线程操作数据库,要么死锁,要么数据错乱,用 FMDatabaseQueue 就比较稳,线程安全也省心。

另外还有点我觉得挺贴心的:异常也封了,执行失败会直接 NSLog 错误信息,你排查起来也比较方便。尤其适合刚上手数据库的新手。

如果你懒得自己封装数据库,又不想上手太重的 CoreData,那这个 LHMFMDBManager 还蛮值得一试的。ReadMeForLHMFMDBManager 文件里有详细用法,照着抄都能用。

想扩展阅读可以看看这些:

如果你在做一个比较轻量的 iOS 应用,数据量不大,逻辑又不复杂,那用 FMDB 加上这种封装就挺香的。自己写代码的时候别忘了用 FMDatabaseQueue,响应也快,线程也安全。

zip
WSFMDBManger.zip 预估大小:35个文件
folder
WSFMDBManger 文件夹
folder
FMDB 文件夹
file
FMDatabase.h 4KB
file
FMResultSet.h 3KB
file
FMDatabaseAdditions.h 1KB
file
FMResultSet.m 12KB
file
FMDatabasePool.m 6KB
file
FMDatabasePool.h 2KB
folder
.svn 文件夹
file
all-wcprops 2KB
folder
prop-base 文件夹
file
FMDatabaseAdditions.h.svn-base 29B
file
FMDatabasePool.m.svn-base 29B
file
FMDatabaseQueue.h.svn-base 29B
file
FMDatabasePool.h.svn-base 29B
file
FMResultSet.m.svn-base 29B
file
FMDatabase.m.svn-base 29B
file
FMResultSet.h.svn-base 29B
file
FMDatabaseAdditions.m.svn-base 29B
file
FMDatabase.h.svn-base 29B
file
FMDatabaseQueue.m.svn-base 29B
folder
props 文件夹
folder
tmp 文件夹
folder
prop-base 文件夹
folder
props 文件夹
folder
text-base 文件夹
folder
text-base 文件夹
file
FMDatabaseAdditions.h.svn-base 1KB
file
FMDatabasePool.m.svn-base 6KB
file
FMDatabaseQueue.h.svn-base 1022B
file
FMDatabasePool.h.svn-base 2KB
file
FMResultSet.m.svn-base 12KB
file
FMDatabase.m.svn-base 33KB
file
FMResultSet.h.svn-base 3KB
file
FMDatabaseAdditions.m.svn-base 5KB
file
FMDatabase.h.svn-base 4KB
file
FMDatabaseQueue.m.svn-base 4KB
file
entries 2KB
file
FMDatabaseAdditions.m 5KB
file
FMDatabaseQueue.h 1022B
file
FMDatabaseQueue.m 4KB
file
FMDatabase.m 33KB
file
WSDBManager.h 1KB
file
ReadMeForLHMFMDBManager.strings 1KB
file
WSDBManager.m 5KB
zip 文件大小:60.79KB