Squeryl — простота и изящество
8 мин
Туториал
Добрый день, хабр!
Решил написать небольшой обзор с примерами на легковесный ORM для Scala — Squeryl 0.9.5
Начнем с основных достоинств данного фреймворка.
1) Squeryl предоставляет DSL для SQL запросов. К примеру
Синтаксис напоминает C# LINQ. Как вы могли заметить в запросах используются лямбда выражения, что значительно сокращает объем кода.
В данном примере метод songs возвращает объект Query[Song] который реализует интерфейс Iterable, что позволяет работать с ним как с обычной коллекцией.
Также стоит отметить, что запросы можно будет использовать в качестве подзапросов, для этого достаточно указать запрос в конструкции from вместо таблицы.
Решил написать небольшой обзор с примерами на легковесный ORM для Scala — Squeryl 0.9.5
Начнем с основных достоинств данного фреймворка.
1) Squeryl предоставляет DSL для SQL запросов. К примеру
def songs = from(MusicDb.songs)(s => where(s.artistId === id) select(s))
def fixArtistName = update(songs)(s =>
where(s.title === "Prodigy")
set(
s.title := "The Prodigy",
)
)
Синтаксис напоминает C# LINQ. Как вы могли заметить в запросах используются лямбда выражения, что значительно сокращает объем кода.
В данном примере метод songs возвращает объект Query[Song] который реализует интерфейс Iterable, что позволяет работать с ним как с обычной коллекцией.
Также стоит отметить, что запросы можно будет использовать в качестве подзапросов, для этого достаточно указать запрос в конструкции from вместо таблицы.




Play! и Lift, — эти два фреймворка являются олицетворением того, куда движется основной поток Scala веб-разработчиков. Воистину, попробуйте поискать на Stack Overflow фреймворки для Scala и вы поймете что я прав. Я верю, что процент здравомыслящих людей, которым надоели сложные комбайны, велик, поэтому расскажу про «другой» фреймворк Xitrum.
А сейчас нужно обязательно дунуть, потому что если не дунуть, то ничего не получится.