Scala에서 SQL 쿼리 작성
이 기사에서는 Slick
의 도움으로 Scala에서 SQL 쿼리를 작성하는 방법을 배웁니다.
Scala에서 SQL 쿼리 작성
‘Slick’(Scala Language-Integrated Connection Kit)은 기능적 관계 매핑을 제공하는 Scala 라이브러리로 관계형 데이터베이스를 쉽게 쿼리하고 액세스할 수 있습니다. 본질적으로 형식이 안전합니다.
전제 조건:
-
Scala
sbt
파일에Slick
종속성을 추가합니다.libraryDependencies += "com.typesafe.slick" %% "slick" % "3.3.1"
-
PostgreSQL 데이터베이스와 같이 사용하려는 데이터베이스에 연결합니다.
postgres { dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" properties = { serverName = "localhost" portNumber = "5432" databaseName = "slickDemo" user = "ScalaDemo" password = "1234" } }
데이터베이스에 id
, name
, country
, dob
열이 있는 students
테이블이 있다고 가정합니다.
case class students(id:Long, name:String, country:String, dob:Option[LocalDate])
이제 쿼리를 작성해 보겠습니다.
테이블에 대한 참조 설정
students
테이블에서 쿼리하려면 먼저 해당 테이블에 대한 참조를 생성해야 합니다.
val studentTable = TableQuery[students]
이제 studentTable
을 사용하여 Slick
쿼리를 작성할 수 있습니다.
Scala의 데이터베이스에서 선택
다음과 같은 쿼리를 작성해 보겠습니다.
select * from students where country="Japan".
위의 쿼리는 일본
에서 온 학생들에 대한 정보를 제공합니다.
이제 Slick
을 사용하여 Scala에서 동일한 쿼리를 작성해 보겠습니다.
val students_from_Japan = studentTable.filter(_.country === "Japan")
Scala에서 테이블의 행 업데이트
id
가 200
인 모든 학생에 대해 국가를 "독일"
로 수정하고 싶다고 가정해 보겠습니다.
val updateQuery = studentTable.filter(_.id ===200).map(_.country).update("Germany")
위 쿼리에서 먼저 id
가 200
인 행을 필터링한 다음 해당 국가를 독일
로 업데이트했습니다.
Scala에서 테이블의 행 삭제
이름이 "tony"
인 학생 기록을 삭제하겠습니다.
val deleteQuery = studentTable.filter(_.name==="tony").delete
위의 쿼리에서 우리는 먼저 이름이 "tony"
인 행을 필터링한 다음 삭제했습니다.
결론
이 기사에서는 Slick
을 사용하여 Scala에서 몇 가지 기본 SQL 쿼리를 작성하는 방법을 살펴보았습니다.