我多年来一直在使用iBATIS并且对它非常满意。 iBATIS非常适合让人们编写自己的SQL,同时处理将数据映射到对象/数据库或从对象/数据库映射数据的平凡工作。我希望Scala特定的库可以执行与iBATIS相同类型的映射。我想一个Scala特定的工具
我在网上看到了很多关于Java和Scala的ORM的东西,但是我还没有看到像scala的iBATIS这样的东西。
在Scala中有人知道这样的工具吗?
答案 0 :(得分:6)
时代变了。现在有一个MyBatis Scala项目,它比Scala更加惯用。
http://mybatis.github.io/scala/
我已经对它进行了评估,它看起来比任何其他ORM或Scala导向的持久性库都要麻烦得多。
他们项目页面上的链接目前已损坏,但您可以在此处访问GitHub页面: https://github.com/mybatis/scala
他们在“mybatis-scala-samples”下有各种样本。这个DAO / CRUD示例是一个特别好的示例:ItemDAO.scala
答案 1 :(得分:3)
为什么不继续使用iBatis ?毕竟它是Java(因此可以从Scala中使用)。我仍然使用Spring JDBC作为我的DAO层。
scala-specifics;您可以添加@BeanProperty
注释以生成getter / setter,然后声明一个方法来保护null
:
@BeanProperty var injectedXyz : String
def xyz : Option[String] = Option(injectedXyz)
不可否认,这并不是很好(即需要额外的样板)。但我没有看到任何看起来像广泛使用的scala DAO层(对于SQL)
答案 2 :(得分:2)
在Scala网站(www.scala-lang.org/node/6539)上,nilskp建议使用orbroker(http://code.google.com/p/orbroker/),因为它是为Scala本地编写的。
答案 3 :(得分:1)
如果我选择ORM,我会看看Squeryl(http://squeryl.org/)。我已经尝试过Lift Mapper,它与Lift Webkit配合得很好,但它有点集成并且有一些我不喜欢的设计选择。
答案 4 :(得分:0)