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

标签 java mysql jakarta-ee jdbc

我有以下 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/

相关文章:

java - 我应该在测试中的实际类里面重复代码吗

java - 未找到 HTTP 请求与 URI 的映射 [Java 注释配置]

mysql - Grails - 提取数据并显示它?

php - 处理 JSON 数据获取的最理想方式

java - 如何实现自定义 ViewProcessor<T> (jax-rs)?

java - 我可以使用什么来代替实体 bean?

java - 更改 JCOMBOX 时组件必须显示在屏幕上以确定其位置

java - 如何安排Docket的groupName在Swagger UI中显示的顺序

MySql 在内部联接中,哪个表先出现有关系吗?

java - servlet 容器是否可以防止 web 应用程序相互干扰,它们是如何做到的?