2015-12-06 2 views
4

Я играю с ScalikeJdbc библиотекой. Я хочу получить данные из базы данных PostgreSQL. Ошибка, которую я получаю, для меня довольно странная. Даже если я вручную настрою CP:ScalikeJDBC: Пул соединений еще не инициализирован. (Name: 'default)

val poolSettings = new ConnectionPoolSettings(initialSize = 100, maxSize = 100) 
ConnectionPool.singleton("jdbc:postgresql://localhost:5432/test", "user", "pass", poolSettings) 

Я все еще вижу ошибку. Вот мой DAO:

class CustomerDAO { 

    case class Customer(id: Long, firstname: String, lastname: String) 
    object Customer extends SQLSyntaxSupport[Customer] 

    val c = Customer.syntax("c") 

    def findById(id: Long)(implicit session: DBSession = Customer.autoSession) = 
    withSQL { 
     select.from(Customer as c) 
    }.map(
     rs => Customer(
     rs.int("id"), 
     rs.string("firstname"), 
     rs.string("lastname") 
    ) 
    ).single.apply() 

} 

Приложение:

object JdbcTest extends App { 
    val dao = new CustomerDAO 
    val res: Option[dao.Customer] = dao.findById(2) 
} 

Мой application.conf файл

# PostgreSQL 
db.default.driver = "org.postgresql.Driver" 
db.default.url = "jdbc:postgresql://localhost:5432/test" 
db.default.user = "user" 
db.default.password = "pass" 

# Connection Pool settings 
db.default.poolInitialSize = 5 
db.default.poolMaxSize = 7 
db.default.poolConnectionTimeoutMillis = 1000 

Ошибка:

Exception in thread "main" java.lang.IllegalStateException: Connection pool is not yet initialized.(name:'default) 
    at scalikejdbc.ConnectionPool$$anonfun$get$1.apply(ConnectionPool.scala:57) 
    at scalikejdbc.ConnectionPool$$anonfun$get$1.apply(ConnectionPool.scala:55) 
    at scala.Option.getOrElse(Option.scala:120) 
    at scalikejdbc.ConnectionPool$.get(ConnectionPool.scala:55) 
    at scalikejdbc.ConnectionPool$.apply(ConnectionPool.scala:46) 
    at scalikejdbc.NamedDB.connectionPool(NamedDB.scala:20) 
    at scalikejdbc.NamedDB.db$lzycompute(NamedDB.scala:32) 

Что я пропустил?

ответ

6

Чтобы загрузить application.conf, необходимо называть команду DBs.setupAll() scalikejdbc-config.

http://scalikejdbc.org/documentation/configuration.html#scalikejdbc-config

https://github.com/scalikejdbc/hello-scalikejdbc/blob/9d21ec7ddacc76977a7d41aa33c800d89fedc7b6/test/settings/DBSettings.scala#L3-L22

+0

Yeap, она отлично работает для меня. Благодарю. – Finkelson

+0

@Finkelson Можете ли вы опубликовать информацию о том, как вы решили эту проблему? – user2975535