Escribir consultas SQL en Scala

Suraj P 21 junio 2023
  1. Escribir consultas SQL en Scala
  2. Establecer referencia a la tabla
  3. Seleccionar de la base de datos en Scala
  4. Actualizar una fila en la tabla en Scala
  5. Eliminar una fila en la tabla en Scala
  6. Conclusión
Escribir consultas SQL en Scala

En este artículo, aprenderemos a escribir consultas SQL en Scala con la ayuda de Slick.

Escribir consultas SQL en Scala

Slick (Scala Language-Integrated Connection Kit) es una biblioteca de Scala que proporciona mapeo relacional funcional, lo que facilita la consulta y el acceso a bases de datos relacionales. Es de tipo seguro por naturaleza.

Requisitos previos:

  1. Agregue las dependencias Slick en el archivo sbt de Scala.

    libraryDependencies += "com.typesafe.slick" %% "slick" % "3.3.1"
    
  2. Conéctese a las bases de datos que le gustaría usar, como la base de datos PostgreSQL.

    postgres {
        dataSourceClass = "org.postgresql.ds.PGSimpleDataSource"
        properties = {
            serverName = "localhost"
            portNumber = "5432"
            databaseName = "slickDemo"
            user = "ScalaDemo"
            password = "1234"
        }
    }
    

Supongamos que tenemos una tabla de estudiantes en la base de datos con las siguientes columnas: id, nombre, país, dob.

case class students(id:Long, name:String, country:String, dob:Option[LocalDate])

Ahora vamos a escribir consultas en él.

Establecer referencia a la tabla

Para consultar desde la tabla estudiantes, primero debemos crear una referencia a ella.

val studentTable = TableQuery[students]

Ahora podemos usar studentTable para escribir nuestras consultas Slick.

Seleccionar de la base de datos en Scala

Escribamos una consulta equivalente a:

select * from students where country="Japan".

La consulta anterior nos da información sobre los estudiantes de Japón.

Ahora escribamos esta misma consulta en Scala usando Slick.

val students_from_Japan = studentTable.filter(_.country === "Japan")

Actualizar una fila en la tabla en Scala

Digamos que queremos modificar el país a "Alemania" para todos los estudiantes con id igual a 200.

val updateQuery = studentTable.filter(_.id ===200).map(_.country).update("Germany")

En la consulta anterior, primero filtramos las filas con id igual a 200 y luego actualizamos sus países a “Alemania”.

Eliminar una fila en la tabla en Scala

Eliminemos un registro de estudiante cuyo nombre es "tony".

val deleteQuery = studentTable.filter(_.name==="tony").delete

En la consulta anterior, primero filtramos las filas con nombres como "tony" y luego las eliminamos.

Conclusión

En este artículo, vimos cómo usar Slick para escribir algunas consultas SQL básicas en Scala.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub