Q: What is the difference between a Java connector and a Scala connector?

A: While both Java connector (jdbc-connector) and Scala connector (ldbc-connector) provide database connectivity, they differ in the following aspects:

A: Java Connector (jdbc-connector)

The Java connector uses traditional JDBC API to connect to databases.

import com.mysql.cj.jdbc.MysqlDataSource
import cats.effect.IO
import ldbc.dsl.DBIO

// Example of datasource configuration and JDBC connector usage
val ds = new com.mysql.cj.jdbc.MysqlDataSource()
ds.setServerName("127.0.0.1")
ds.setPortNumber(13306)
ds.setDatabaseName("world")
ds.setUser("ldbc")
ds.setPassword("password")

val connector = Connector.fromDataSource[IO](ds, ExecutionContexts.synchronous)

DBIO.pure(()).commit(connector)

A: Scala Connector (ldbc-connector)

The Scala connector manages database connections leveraging type safety and functional programming.

import cats.effect.IO
import ldbc.connector.*
import ldbc.dsl.DBIO

// Example of creating a connection using ldbc-connector (JVM, Scala.js, Scala Native compatible)
val datasource = MySQLDataSource
  .build[IO]("127.0.0.1", 3306, "ldbc")
  .setPassword("password")
  .setDatabase("ldbc")
  .setSSL(SSL.Trusted)

val connector = Connector.fromDataSource(datasource)

DBIO.pure(()).commit(connector)

A: Key Differences

References