首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScalikeJDBC:连接池尚未初始化。(名称:“默认”)

ScalikeJDBC:连接池尚未初始化。(名称:“默认”)
EN

Stack Overflow用户
提问于 2015-12-06 21:29:42
回答 2查看 7.3K关注 0票数 8

我在玩ScalikeJdbc库。我想从PostgreSQL数据库中检索数据。我所犯的错误对我来说很奇怪。即使我手动配置CP:

代码语言:javascript
复制
val poolSettings = new ConnectionPoolSettings(initialSize = 100, maxSize = 100)
ConnectionPool.singleton("jdbc:postgresql://localhost:5432/test", "user", "pass", poolSettings)

我还是看到了错误。这是我的刀:

代码语言:javascript
复制
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()

}

应用程序:

代码语言:javascript
复制
object JdbcTest extends App {
  val dao = new CustomerDAO
  val res: Option[dao.Customer] = dao.findById(2)
}

我的application.conf文件

代码语言:javascript
复制
# 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

错误:

代码语言:javascript
复制
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)

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-06 23:05:16

要加载application.conf,应该提前调用scalikejdbc的DBs.setupAll()

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

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

票数 9
EN

Stack Overflow用户

发布于 2016-03-17 02:00:44

在我的例子中,我省略了play.modules.enabled += "scalikejdbc.PlayModule"conf/application.conf中使用ScalikeJDBC游戏支持.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34123011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档