4

我已经使用 iBATIS 多年并且对它非常满意。iBATIS 非常擅长让人们编写自己的 SQL,同时处理将数据映射到对象/数据库的日常工作。我想要一个 Scala 特定的库,它执行与 iBATIS 相同类型的映射。我认为一个 Scala 特定的工具会

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

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

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

4

5 回答 5

6

时代变了。现在有一个 MyBatis Scala 项目,它对 Scala 来说更加地道。

http://mybatis.github.io/scala/

我已经对其进行了评估,它看起来比任何其他面向 ORM 或 Scala 的持久性库都少了很多麻烦。

他们项目页面上的链接目前已损坏,但您可以在此处访问 GitHub 页面: https ://github.com/mybatis/scala

他们在“mybatis-scala-samples”下有各种样本。这个 DAO / CRUD 示例是一个特别好的示例:ItemDAO.scala

于 2012-06-11T14:58:38.773 回答
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)

于 2011-02-24T20:46:40.373 回答
2

在 Scala 网站 (www.scala-lang.org/node/6539) 上,nilskp 推荐 orbroker (http://code.google.com/p/orbroker/),因为它是为 Scala 原生编写的。

于 2011-02-24T21:31:50.360 回答
1

如果我要选择 ORM,我会考虑 Squeryl (http://squeryl.org/)。我已经试用了 Lift Mapper,它与 Lift Webkit 配合得很好,但它有点集成并且有一些我不喜欢的设计选择。

于 2011-02-24T22:35:19.010 回答
0

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

https://github.com/seratch/scalikejdbc

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

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

于 2012-05-25T01:31:56.557 回答