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
Slick
en el archivosbt
de 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.