Scala数据库映射库与iBATIS类似

时间:2011-02-24 20:30:32

标签: database scala ibatis data-mapping

我多年来一直在使用iBATIS并且对它非常满意。 iBATIS非常适合让人们编写自己的SQL,同时处理将数据映射到对象/数据库或从对象/数据库映射数据的平凡工作。我希望Scala特定的库可以执行与iBATIS相同类型的映射。我想一个Scala特定的工具

  • 不要求对象是Java Bean(即getter和setter)
  • 使用Option而不是null值
  • 我认为就是这样,但可能还有更多

我在网上看到了很多关于Java和Scala的ORM的东西,但是我还没有看到像scala的iBATIS这样的东西。

在Scala中有人知道这样的工具吗?

5 个答案:

答案 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)

您可能更喜欢ScalikeJDBC。看看吧。

https://github.com/seratch/scalikejdbc

它还有源代码生成器。特别是如果您访问现有的旧数据库,它会非常方便。

https://github.com/seratch/scalikejdbc-mapper-generator