2017-11-11 3 views
1

PostgreSQL 드라이버를 사용하여 Intellij IDEA에서 Slick으로 프로젝트를 만들려고합니다. 그러나 나는 그럭저럭 찾을 수 있었다 this tutorial 나는 그것을 따라 갔지만 오류가있다 : 스레드 "main"의 예외 java.lang.ExceptionInInitializerError Main.main (Main.scala) 에 의한 예외 : com.typesafe. 누락 config.ConfigException $ :Slick With PostgreSQL 스칼라 SBT Intellij IDEA

scalaxdb = { 
    dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" 
    properties = { 
    driver = "org.postgresql.Driver" 
    url = "jdbc:postgresql://localhost/dbname?user=user&password=password" 
    } 
} 
:이 application.conf 파일입니다

import scala.slick.driver.PostgresDriver.simple._ 

object Main { 

    case class Song(
        id: Int, 
        name: String, 
        singer: String) 

    class SongsTable(tag: Tag) extends Table[Song](tag, "songs") { 
    def id = column[Int]("id") 

    def name = column[String]("name") 

    def singer = column[String]("singer") 

    def * = (id, name, singer) <> (Song.tupled, Song.unapply) 
    } 

    lazy val songsTable = TableQuery[SongsTable] 
    val db = Database.forConfig("scalaxdb") 

    def main(args: Array[String]): Unit = { 

    val connectionUrl = "jdbc:postgresql://localhost/songs?user=postgres&password=postgresp" 

    Database.forURL(connectionUrl, driver = "org.postgresql.Driver") withSession { 
     implicit session => 
     val songs = TableQuery[SongsTable] 
     songs.list foreach { row => 
      println("song with id " + row.id + " has name " + row.name + " and a singer is " + row.singer) 
     } 
    } 
    } 
} 

: 키 'URL'여기

에 대한 찾을 수 없습니다 구성 설정은 메인 클래스 내 코드입니다

그리고이 build.sbt된다

libraryDependencies ++= Seq(
    "org.postgresql" % "postgresql" % "9.3-1100-jdbc4", 
    "com.typesafe.slick" %% "slick" % "2.1.0", 
    "org.slf4j" % "slf4j-nop" % "1.6.4" 
) 

내가 뭘 잘못 알아낼 수 없습니다. 이 문제를 해결하기위한 조언에 대해 매우 감사하게 생각합니다.

답변

1

Slick을 조금 더 최신 버전으로 사용 하시겠습니까?

import slick.jdbc.PostgresProfile.api._ 
import scala.concurrent.Await 
import scala.concurrent.ExecutionContext.Implicits.global 
import scala.concurrent.duration._ 

object Main { 

    case class Song(
        id: Int, 
        name: String, 
        singer: String) 

    class SongsTable(tag: Tag) extends Table[Song](tag, "songs") { 
    def id = column[Int]("id") 

    def name = column[String]("name") 

    def singer = column[String]("singer") 

    def * = (id, name, singer) <> (Song.tupled, Song.unapply) 
    } 

    val db = Database.forConfig("scalaxdb") 

    val songs = TableQuery[SongsTable] 

    def main(args: Array[String]): Unit = { 
    Await.result({ 
     db.run(songs.result).map(_.foreach(row => 
     println("song with id " + row.id + " has name " + row.name + " and a singer is " + row.singer))) 
    }, 1 minute) 
    } 
} 

build.sbt

scalaVersion := "2.12.4" 

libraryDependencies += "com.typesafe.slick" %% "slick" % "3.2.1" 
libraryDependencies += "org.slf4j" % "slf4j-nop" % "1.7.25" 
libraryDependencies += "com.typesafe.slick" %% "slick-hikaricp" % "3.2.1" 
libraryDependencies += "org.postgresql" % "postgresql" % "42.1.4"