2016-08-08 4 views
1

Slick 3.1.1을 사용하여 일반 SQL 쿼리를 실행하는 데 2 ​​일이 걸렸으며 Getting StartedDatabase Configuration 가이드를 따랐습니다.PostgreSQL 용 Slick 3.1.1을 구성하는 방법은 무엇입니까? 평범한 SQL 쿼리를 실행하는 동안 내 구성 매개 변수를 무시하는 것 같습니다

문제입니다 코드가 제대로 컴파일하는 동안, 내 데이터베이스 매개 변수를합니다 (설정에 사람이 잘못),가 (이 예외를 발생한다 동안) 표준 출력이 인쇄 무시 :

HikariCP pool database is starting. 
List() 
'application.conf'

mydb = { 
    dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" 
    properties = { 
    databaseName = "mydb" 
    user = "myuser" 
    password = "secret" 
    } 
    numThreads = 10 
} 

여기
import slick.driver.PostgresDriver.api._ 
import scala.concurrent.ExecutionContext.Implicits.global 

object app extends App { 
    doit 
    def doit { 
    val db = Database.forConfig("mydb") 
    val result = db.run(sql"SELECT NOW()".as[String]) 
    println(result) 
    } 
} 

입니다 :

여기 내 테스트 코드 여기에 'build.sbt'가 있습니다.

libraryDependencies ++= Seq(
    "org.postgresql" % "postgresql" % "9.4.1208", 
    "mysql" % "mysql-connector-java" % "5.1.35", 
    "com.typesafe.slick" %% "slick" % "3.1.1", 
    "com.typesafe.slick" %% "slick-hikaricp" % "3.1.1", 
    "com.zaxxer" % "HikariCP" % "2.4.7" 
) 

또한 스칼라가 "2.11.8"입니다.

답변

1

문제는 설정과 관련이 없지만 어떻게 작동하는지 기대하고있었습니다. 잘못된 자격 증명을 사용하여 데이터베이스와이 라인 구성하는 동안

내가 예외를 예상 : db.run는 미래를 반환하기 때문에 그것은 어떤 expection를 포기하지 않습니다

val result = db.run(sql"SELECT NOW()".as[String]) 

을, 프로그램은이 쿼리 후 완료 Await.result를 사용하여 실행되지 않습니다. 결과가 잘못된 구성에 대한 예외를 던지거나 적절한 값을 반환 할 미래를 보냅니다. 여기에 샘플 코드가 있습니다.

import scala.concurrent.Await 
import scala.concurrent.duration.Duration 

println(Await.result(result, Duration.Inf))