gpt4 book ai didi

postgresql - scala中的Postgres JDBC无法在不重新启动sbt的情况下运行两个查询

转载 作者:行者123 更新时间:2023-11-29 14:07:33 25 4
gpt4 key购买 nike

我正在使用 scala (2.9.2) 连接到 postgres 数据库。

我第一次进行 SELECT(通过在 IntelliJ 的 sbt 终端中使用“运行”运行代码)它运行良好,但如果我在 sbt shell 中再次“运行”,我会收到一个错误,声称:

[error] (run-main) java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost/db
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost/db
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at SequenceGenerator$.connect(Validator.scala:50)
at SequenceGenerator$.generate(Validator.scala:54)
at Main$.main(Validator.scala:32)
at Main.main(Validator.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

我已经通过 sbt 安装了 postgres 连接器,这一行在我的 build.sbt 文件中。

libraryDependencies += "postgresql" % "postgresql" % "9.1-901.jdbc4"

这是我制作 SELECT 的代码:

object SequenceGenerator{
def connect() = {
DriverManager.getConnection("jdbc:postgresql://localhost/db","user", "pass")

}
def generate() = {
val db = connect()
val st = db.createStatement
val res = st.executeQuery("SELECT value from table LIMIT 2")
while( res.next) {
println(res.getString("value"))
}
}
}

最佳答案

我们不得不将它添加到我们的集成测试启动中,以解决与 mysql jdbc 驱动程序相同的问题:

Class.forName("com.mysql.jdbc.Driver").newInstance

我不确定为什么 SBT 卸载驱动程序,但这样的事情可能对你有用:

object SequenceGenerator{
//Use whatever your jdbc driver class should be here, I'm just guessing
Class.forName("org.postgresql.Driver").newInstance

def connect() = {
DriverManager.getConnection("jdbc:postgresql://localhost/db","user", "pass")
}
def generate() = {
val db = connect()
val st = db.createStatement
val res = st.executeQuery("SELECT value from table LIMIT 2")
while( res.next) {
println(res.getString("value"))
}
}
}

关于postgresql - scala中的Postgres JDBC无法在不重新启动sbt的情况下运行两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15222265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com