为Go设计数据库存储库的惯用方法是什么?
我正在使用Couchbase cbgo获取返回读者的项目。我逐个得到每个项目。
我不想将此抽象返回给我的lib的最终用户。
那么最好的方法是什么?
我可以迭代这些项目并将它们附加到Slice。
或者,我可以返回一个频道,然后将每一行推送到频道,以便客户端可以覆盖它。
或者我可以制作自己的迭代器抽象。
其他人在这种情况下做了什么?
我不需要将结果作为切片,因为数据只是通过管道输送到其他模块。
答案 0 :(得分:0)
地图
我学到了更多here。
现在,无论使用哪种Model结构,您都应该能够使用数据库处理程序的方法
dbHandler := infrastructure.NewSqliteHandler("/var/tmp/production.sqlite")
handlers := make(map[string] interfaces.DbHandler)
handlers["DbUserRepo"] = dbHandler
handlers["DbCustomerRepo"] = dbHandler
handlers["DbItemRepo"] = dbHandler
handlers["DbOrderRepo"] = dbHandler