Escribir consultas SQL en Scala
- Escribir consultas SQL en Scala
- Establecer referencia a la tabla
- Seleccionar de la base de datos en Scala
- Actualizar una fila en la tabla en Scala
- Eliminar una fila en la tabla en Scala
- Conclusión
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:
-
Agregue las dependencias
Slicken el archivosbtde Scala.libraryDependencies += "com.typesafe.slick" %% "slick" % "3.3.1" -
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.
