Connessione a PostgreSQL in Scala 3 con doobie
Come al solito ho specificato Scala 3 in quanto non tutte le librerie sono ancora compatibili con questa versione.
In questo articolo useremo, infatti, doobie in RC, quindi una versione funzionante ma ancora non ufficiale.
doobie ci permette è un layer JDBC per la connessione a un db.
In questo articolo vedremo come usarla per connetterci a PostgreSQL.
Se usate sbt per l'installazione:
libraryDependencies ++= Seq(
"org.tpolecat" %% "doobie-core" % "1.0.0-RC10",
"org.tpolecat" %% "doobie-postgres" % "1.0.0-RC10",
"org.tpolecat" %% "doobie-hikari" % "1.0.0-RC10",
"org.postgresql" % "postgresql" % "42.7.8"
)
Qui sotto un esempio di codice in cui facciamo una SELECT su una tabella:
import cats.*
import cats.effect.*
import cats.effect.unsafe.implicits.global
import doobie.*
import doobie.implicits.*
case class Utente(id: Int, email: String)
@main
def main(): Unit =
val xa = Transactor.fromDriverManager[IO](
driver = "org.postgresql.Driver",
url = "jdbc:postgresql:postgres",
user = "postgres",
password = "9211",
logHandler = None
)
sql"SELECT id, email FROM utenti"
.query[Utente]
.to[List]
.transact(xa)
.unsafeRunSync()
.take(50)
.foreach(println)
Enjoy!
scala sbt posgresql database
Commentami!