gpt4 book ai didi

java - 我的 JDBC 连接可能有问题?

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

我有以下 Java 类:

package web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;


public class HelloWorld extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Student Name<br>");


try{
Connection conn=null;
String url = "jdbc:mysql://localhost/test";
PreparedStatement pre=null;

Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(url,"root","3324911");
out.println("Database connected");
pre = conn.prepareStatement("Insert INTO countries(COUNTRY,COUNTRY_ISO_CODE,REGION) VALUES (?,?,?)");
pre.setString(1,"USA");
pre.setString(2,"US");
pre.setString(3,"North America");
pre.executeUpdate();

}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}

不知道什么原因,我在Tomcat中部署这个类后,程序只能到达该行

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

到达线后就会失败:

  conn=DriverManager.getConnection(url,"root","3324911");

这个 try/catch block 作为一个单独的方法工作,我从另一个类的主方法中获取它,并且它工作正常。

当我在 Tomcat 中插入这个 try/catch block 时,我不确定我在哪里搞砸了。

感谢任何帮助,谢谢!

最佳答案

JDBC 驱动程序是否已在路径中配置或复制到 lib 目录(即 $CATALINA_HOME/lib 或 web-inf/lib)中?

此外,如果您使用连接池会更好 - tomcat 附带了一个连接池,这是比生成您自己的数据库连接更好的方法。

此外,如果您清理与数据库相关的资源可能会更好(除非为了简单起见,您将其从上面的代码中删除)。

希望这有帮助。

是的,我同意其他响应者的观点 - 获取更详细的错误日志记录可能是首选途径。

关于java - 我的 JDBC 连接可能有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11922572/

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