irpas技术客

Eclipse Java Web 报错 java.lang.ClassNotFoundException: org.postgresql.DriverWARNI

未知 3590

问题描述

我们在java web项目中通过JDBC绑定数据库时,

通过以下语句可实现数据库的绑定:

?Connection c = null; ? ? ? ?Statement stmt = null; ? ? ? ?try { ? ? ? ?Class.forName("org.postgresql.Driver"); ? ? ? ? ?c = DriverManager.getConnection("jdbc:postgresql:JFF", "postgres", "021115"); ? ? ? ? ? ?c.setAutoCommit(false); // 把自动提交给取消掉 ? ? ? ? ? ?System.out.println("Opened database successfully"); ? ? ? ? ? ?PreparedStatement pStatement = null; ? ? ? ? ?String sql="SELECT * FROM member"; //直接在member表中查询 ? ? ? ? ?ResultSet rs = null; ? ? ? ? ?try { ? ? ? ? ? ? ?pStatement = c.prepareStatement(sql);//准备PreparedStatement ? ? ? ? ? ? ?rs = pStatement.executeQuery();//执行查询 ? ? ? ? ? ? ?System.out.println(234); ? ? ? ? } catch (SQLException e) { ? ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? } finally { ? ? ? ? ? ? ?try { ? ? ? ? ? ? ? ? ?c.close(); ? ? ? ? ? ? } catch (SQLException e) { ? ? ? ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ?while(rs.next()){ ? ? ? ? ? ? ? ? ? ? ? //当该结果集的下一条数据不为空,读取下一条数据 ? ? ? ? ? ? ? ? String id = rs.getString("id"); ? ? ? //读取当前行名为id的列的数据 ? ? ? ? ? ? ?String name1 = rs.getString("name"); ? ? ? ? ? ? ? ?System.out.println("id:"+id+" 姓名:"+name1); ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ?c.close(); ? ? ? } catch (Exception e) { ? ? ? ? ? ?System.err.println(e.getClass().getName() + ": " + e.getMessage()); ? ? ? ? ? ?System.exit(0); ? ? ? } ?

需要使用

Class.forName("org.postgresql.Driver");

来绑定Postgresql的Driver

可能会出现如下报错:

java.lang.ClassNotFoundException: org.postgresql.Driver WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/D:/tool/apache-tomcat-9.0.39/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release

原因如下:

eclipse 构建路径中没有postgres的jar包

PostgreSQL JDBC Download

下载对应版本jar 包,在eclipse中右键项目-构建路径-配置构建路径

?

添加外部JAR-选择刚刚下载的jar包-应用并关闭

?

?

?

在进行了上述操作后,仍然会报错

将JAR包放入src/main/webapp/WEB-INF/lib

?

即可解决问题。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Eclipse #JAVA #Web #报错