Anorm
ScalikeJDBC
Our great sponsors
Anorm | ScalikeJDBC | |
---|---|---|
1 | 4 | |
226 | 1,243 | |
0.4% | 0.2% | |
8.7 | 6.8 | |
4 days ago | about 21 hours ago | |
Scala | Scala | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Anorm
-
I want to move to Scala 3, but I'm not sure what libraries to use
For database access Anorm https://github.com/playframework/anorm
ScalikeJDBC
- Query DSL in Scala 3
-
From First Principles: Why Scala?
I have had poor experiences with "fancy" SQL libraries in multiple languages when I go past basic operations. This includes Slick and Quill in Scala.
I don't remember what the problems were with Slick that leave such a bad feeling when I hear its name -- that was 5 years ago -- but I had problems with Quill just last year. I was trying to use it to generate an efficient "in" query against a two column composite primary key, and nothing seemed to work. Since it uses macro magic, one of my attempts triggered an internal compiler error instead of normal compiler feedback.
I ended up dropping Quill for ScalikeJDBC:
It seems to be less popular/active than other libraries, but it is dead simple to use, even for developers new to Scala. I write exactly the SQL I want just like I would in psql. There is little-to-no magic [1]. I think that the only slightly magical feature I use is ensure that variable interpolation into SQL ("SQLInterpolation") prevents injection attacks.
[1] It actually has capabilities to automatically map tables/columns into different structures and generate code for you, but my team doesn't use any of that. We just write SQL.
What are some alternatives?
Slick - Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
doobie - Functional JDBC layer for Scala.
Quill - Compile-time Language Integrated Queries for Scala
Squeryl - A Scala DSL for talking with databases with minimum verbosity and maximum type safety
AnormCypher - Neo4j Scala library based on Anorm in the Play Framework
Relate - Performant database access in Scala
SwayDB - Persistent and in-memory key-value storage engine for JVM that scales on a single machine.
Casbah - Casbah is now officially end-of-life (EOL).