You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Servlet连接PostgreSQL时遇ClassNotFoundException问题求助

解决PostgreSQL驱动ClassNotFoundException及代码错误问题

首先你提供的代码存在两处明显错误,这也是引发问题的直接原因:

  1. 驱动类名拼写错误:正确的类名是org.postgresql.Driver(首字母D大写),你写的是org.postgresql.driver(小写d),这会直接导致JVM找不到驱动类。
  2. 语法错误:DriverManager conn = Driver.getConnection(addr, user, pass); 类型不匹配,getConnection返回的是Connection对象,且通常使用DriverManager的静态方法获取连接,正确写法如下:
// 修正驱动类名
Class.forName("org.postgresql.Driver");
// 修正连接获取代码
Connection conn = DriverManager.getConnection(addr, user, pass);

注:JDBC 4.0及以上版本(对应Java 6+)可省略Class.forName语句,驱动会通过META-INF/services自动注册,但保留该语句也不会有问题。

接下来解决驱动包缺失的核心问题:

部署PostgreSQL JDBC驱动包

Tomcat无法找到驱动类,本质是驱动jar包未被加载,有两种部署方式:

1. 项目专属部署

  • 下载与你的PostgreSQL服务器版本兼容的JDBC驱动包(例如PostgreSQL 10+对应42.x系列驱动)
  • 将驱动jar包放入Web项目的WEB-INF/lib目录
  • 重新打包并部署项目到Tomcat

2. Tomcat全局部署

  • 将驱动jar包放入Tomcat安装目录下的lib文件夹
  • 重启Tomcat服务器,所有部署在该Tomcat上的Web项目都能使用该驱动

版本兼容性检查

确保驱动包版本与PostgreSQL服务器版本匹配:

  • PostgreSQL 10及以上:优先使用42.x系列驱动
  • PostgreSQL 9.x:可选择41.x或更低版本驱动

内容的提问来源于stack exchange,提问作者mohammad taha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:16:01