Vanilla 的 DAO

vanilla 的 DAO 预设为项目对数据源的封装,一切对数据源的操作都可以封装成 DAO,方便维护、管理、缓存等。 Vanilla 的 DAO 在项目的 models/dao 路径下,一般使用 LoadModel 方法进行加载

最简单的 DAO

由自动生成的 demo 中默认生成了 TableDao,可以看出 TableDao 只是一个普通的 LUA 包。

  1. local TableDao = {}
  2. function TableDao:set(key, value)
  3. self.__cache[key] = value
  4. return true
  5. end
  6. function TableDao:new()
  7. local instance = {
  8. set = self.set,
  9. __cache = {}
  10. }
  11. setmetatable(instance, TableDao)
  12. return instance
  13. end
  14. function TableDao:__index(key)
  15. local out = rawget(rawget(self, '__cache'), key)
  16. if out then return out else return false end
  17. end
  18. return TableDao
以上代码解释

DAO 可以是任何对数据层访问封装的 LUA 包,实现方式非常自由。