Connessione a PostgreSQL in Scala 3 con doobie

Mattepuffo's logo
Connessione a PostgreSQL in Scala 3 con doobie

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!


Condividi

Commentami!