--
FMDBQueueHelper是对FMDB中的FMDBQueue简单封装,对多线程环境下使用sqlite非常方便。只需要一句话就可以了:
异步方法:
let sql = "replace into \"NetCache\" (\"userId\", \"key\", \"url\", \"data\", \"date\")
values ( ?, ?, ?, ?, (datetime(CURRENT_TIMESTAMP,'localtime')))"
FMDBQueueHelper.share().sync_executeUpdate(sql: sql,
` withArgumentsIn: [userId, key, url, data ?? Data()],
complete: nil)
同步方法:
FMDBQueueHelper.share().executeUpdate(sql: sql, withArgumentsIn:
[userId, key, url, data ?? Data()])
--
其中 FMDBQueueHelper.share()(open static func share( _ dbname: String? = nil ) -> FMDBQueueHelper
)是个单例。 可选参数 dbname:根据dbname 来执行相应的数据库。若dbname 与上一次传入的不同,则关闭上一次的数据库,打开新的数据库,否则(或为nil)返回上一次的数据库。
ps: 出于对线程安全的考虑,不建议对同个
FMDBQueueHelper
同时使用同步和异步的方法,不然会崩溃。该封装主要适用于一步的情况