HOWTO · Scala

Escribir consultas SQL en Scala

Este artículo habla sobre cómo escribir consultas SQL en Scala.

En esta página

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.