gpt4 book ai didi

database - 无法连接到 Eclipse 中的 Derby

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:49 24 4
gpt4 key购买 nike

我正在尝试使用 eclipse 开发一个网络应用程序,该应用程序使用 derby 数据库并在 tomcat 上运行。

我的问题是我无法使用 eclipse 启动 derby 服务器(它在 CMD 下运行良好)并且我无法让我的 servlet 与数据库建立连接,每次我尝试都会收到错误消息:

java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.Jieren.servlets.Authenticator.testCredentials(Authenticator.java:84)
at com.Jieren.servlets.Authenticator.doPost(Authenticator.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

我没有任何对连接做任何事情的 xml 文件(我见过 web.xml 等管理连接的文件)但据我所知,应该可以通过直接的 Java 代码(这似乎更容易学习)建立连接因为我是新手)。

我用来连接的代码如下。

Connection conn = null;
PreparedStatement prestat = null;
ResultSet pw = null;

try {
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/apache-tomcat-7.0.19/Databases/Jieren;" +
"user=Access;" +
"password=Entry");

prestat = conn.prepareStatement("SELECT password FROM logs WHERE username = ?");
prestat.setString(1, username);
pw = prestat.executeQuery();
if (password.equals(pw.toString())) answer = 1;
pw.close();
pw = null;
prestat.close();
prestat = null;
conn.close();
conn = null;

} catch (SQLException e) {
e.printStackTrace();
}
finally{
if (pw != null){
try { pw.close();} catch (SQLException e){;}
pw = null;
}
if (prestat != null){
try { prestat.close();} catch (SQLException e){;}
prestat = null;
}
if (conn != null){
try {conn.close();} catch(SQLException e) {;}
conn = null;
}
}

根据我环顾四周得出的结论,如果其他所有配置都正确,代码应该可以工作。通过 eclipse 外部的 ij 连接到数据库是可行的,所以我觉得我需要在 eclipse 中编写一个设置或一些东西来连接它。

最佳答案

异常告诉您您的网络服务器没有运行。当您的连接 URL 以 jdbc:derby://hostname 开头时,您就是在告诉 Derby 您希望以客户端-服务器模式运行,这意味着您的客户端应用程序将建立到网络服务器的 TCP/IP 连接。有关如何设置和操作网络服务器的信息,请参阅此文档:http://db.apache.org/derby/docs/10.8/adminguide/

关于database - 无法连接到 Eclipse 中的 Derby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6950996/

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