Библиотека отображения базы данных Scala, аналогичная iBATIS - PullRequest
4 голосов
/ 24 февраля 2011

Я использую iBATIS в течение многих лет и был очень доволен этим. iBATIS очень хорош в том, что он позволяет писать свой собственный SQL, обрабатывая обычную работу по отображению данных в / из объектов / базы данных. Мне бы понравилась библиотека для Scala, которая выполняет те же типы сопоставлений, что и iBATIS. Я полагаю, что конкретный инструмент Scala будет

  • не требует, чтобы объекты были Java Beans (то есть геттерами и сеттерами)
  • использовать Option вместо нулевых значений
  • Думаю, все, но может быть и больше

В Интернете я видел множество материалов, рассказывающих об ORM для Java и Scala, но я не видел ничего похожего на iBATIS для Scala.

Кто-нибудь знает такой инструмент в Scala?

Ответы [ 5 ]

6 голосов
/ 11 июня 2012

Времена изменились.Теперь есть проект MyBatis Scala, который гораздо более идиоматичен для Scala.

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

Я оценил его, и он выглядел намного менее хлопотно, чем любой другой ORMили Scala-ориентированные постоянные библиотеки.

Ссылки на их странице проекта в настоящее время не работают, но вы можете перейти на страницу GitHub здесь: https://github.com/mybatis/scala

У них есть различные образцы в разделе "mybatis-scala".-samples».Этот пример DAO / CRUD является особенно хорошим примером: ItemDAO.scala

3 голосов
/ 24 февраля 2011

Почему бы просто не продолжить использование iBatis ? В конце концов, это Java (и, следовательно, его можно использовать из Scala). Я все еще использую Spring JDBC в качестве слоя DAO.

Что касается скала-специфики; Вы можете добавить аннотацию @BeanProperty для генерации методов получения / установки, а затем объявить метод для защиты null:

@BeanProperty var injectedXyz : String

def xyz : Option[String] = Option(injectedXyz)

По общему признанию, это не очень хорошо (т. Е. Требует дополнительного шаблона). Но я не видел ничего похожего на широко используемый слой scala DAO (для SQL)

2 голосов
/ 25 февраля 2011

На веб-сайте Scala (www.scala-lang.org/node/6539) nilskp рекомендует orbroker (http://code.google.com/p/orbroker/), поскольку он изначально написан для Scala.

1 голос
/ 25 февраля 2011

Если бы я выбрал ORM, я бы посмотрел на Squeryl (http://squeryl.org/). Я опробовал Lift Mapper, и он хорошо работает с Lift Webkit, но он немного интегрирован и у меня есть определенные варианты дизайна. не нравится.

0 голосов
/ 25 мая 2012

Вы можете предпочесть ScalikeJDBC.Взгляните на это.

https://github.com/seratch/scalikejdbc

Он также имеет генератор исходного кода.Особенно, если вы получаете доступ к существующей устаревшей базе данных, это очень удобно.

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

...