Connessione a MariaDB in Scala 3 e doobie

Mattepuffo's logo
Connessione a MariaDB in Scala 3 e doobie

Connessione a MariaDB in Scala 3 e 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 è sostanzialmente un layer JDBC per la connessione a un db.

In questo articolo vedremo come usarla per connetterci a MariaDB.

Rispetto ad altri articoli, non ho specificato anche MySQL perchè ci sono delle piccole differenze nei driver e nella url di connessione.

In realtà molto poche, ma ho preferito specificarlo.

Se usate sbt per l'installazione:

libraryDependencies ++= Seq(
  "org.tpolecat" %% "doobie-core" % "1.0.0-RC10",
  "org.tpolecat" %% "doobie-hikari" % "1.0.0-RC10",
  "org.mariadb.jdbc" % "mariadb-java-client" % "3.5.6"
)

Qui sotto un pò di codice:

package com.test

import cats.*
import cats.effect.*
import cats.effect.unsafe.implicits.global
import doobie.*
import doobie.implicits.*

case class Persona(id: Int, email: String)

@main
def main(): Unit =
  val xa = Transactor.fromDriverManager[IO](
    driver = "org.mariadb.jdbc.Driver",
    url = "jdbc:mariadb://localhost:3306/test?serverTimezone=UTC",
    user = "root",
    password = "9211",
    logHandler = None
  )

  sql"SELECT id, email FROM persone"
    .query[Persona]
    .to[List]
    .transact(xa)
    .unsafeRunSync()
    .take(50)
    .foreach(println)

Enjoy!


Condividi

Commentami!