如何在 Scala 中实现 DAO?

Posted

技术标签:

【中文标题】如何在 Scala 中实现 DAO?【英文标题】:How to implement DAO in Scala? 【发布时间】:2011-07-18 19:24:50 【问题描述】:

我想在 Scala 中实现 DAO,如下所示:

trait DAO[PK,-T,-Q] 

   // T is a "value object", PK is a primary key, and Q is query parameters.

   def create(t:T):Unit
   def update(t:T):Unit
   def remove(pk:PK):Unit
   def find(query:Q):Seq[T]

这有意义吗?是不是看起来“太 Java”了? 您将如何在 Scala 中设计/实现 DAO?

【问题讨论】:

这取决于 DAO 的“核心”——这是一个非常主观的话题 ;-) 你想达到什么目的?与 ORM 无关或实施 Active Record 模式?如果你想实现 Active Record,那么已经有 ORM 可以这样做...... Lift 提供了一个功能齐全的 ORM,因此您不必自行推出 【参考方案1】:

我认为 Scala 允许比 Java'ish DAO 更直接、更直接地使用 SQL 数据库。

您可能想查看http://squeryl.org/ 和此出色答案中提到的其他框架:https://***.com/questions/1362748/wanted-good-examples-of-scala-database-persistence/2318935#2318935

【讨论】:

非常感谢指向其他答案的链接。很有帮助,谢谢! 对于像我这样偶然发现这个问题的人,可以在internet archive找到链接的帖子。

以上是关于如何在 Scala 中实现 DAO?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Scala 中实现真正的 Singleton

您将如何在 Scala 中实现缓存方面

如何使用 EntityManager (JPA) 在 DAO 中实现 update() 方法?

如何在 spark scala 中实现 uniqueConcatenate、uniqueCount [关闭]

如何在火花聚合函数中实现scala类型安全

如何在Scala中实现一个真正的Singleton