前几天在使用一些组件的时候遇到了这个报错:java.sql.SQLException: No suitable driver found for jdbc:XXX,之后上网搜了一个方法解决了,可为什么能如此解决则在这里记录一下:

一、网上搜索的解决方案

  《No Suitable Driver Found For Jdbc_我的解决方法》

  文中的解决办法是在jre\lib\ext上添加驱动jar包,问题解决;

  但是解释就不是作者所说的需要把jar包放在外部jar包环境中。其根本原因是:程序没有加载驱动jar包;

  当程序没有加载驱动包,就运行DriverManager.getConnection(url,usr,psd),就会报这个错误:

  No suitable driver found for jdbc:XXX

  

  这里缺少了Class.forName()导致的,当我按照前面的解决办法,把驱动包放在jre\lib\ext上的时候,同样能够解决问题:

   

  显然易见:出现No suitable driver found for jdbc这个报错的原因是程序没有加载驱动程序jar包,尽管在lib上已经包含了这个jar包。

二、关于类加载器

  网上关于类加载器的资料:

  类加载时采用的树形的委托机制,默认有三个类加载器:

  1、Bootstrap Class Loader:加载jre/lib/rt.jar;在树的根节点

  2、Extension Class Loader:加载jre/lib/ext/*.jar;

  3、System Class Loader:加载classpath指定的jar或者目录;

  他们的加载顺序是:先bootstrap加载,然后extension加载,最后system加载。

  加载策略:向上委托策略,低级别类加载器(L)的要加载类,先由最高级别的类加载器先加载,若加载不成功则层层向下传递,直到该类加载器(L)也加载不了则报错。

  一篇关于JVM类加载机制的文章;

  在本文中,Class.forName()的类加载器就是调用者的类加载器,总之,只要能把驱动jar包加载上去就可以解决问题了,无论在哪里加载这个jar包。

三、参考资料

  1、《No Suitable Driver Found For Jdbc_我的解决方法》

  2、《No suitable driver found for jdbc:XXX》

  3、《Java 如果将JAR文件放入jre/lib/ext目录中,会遇到什么麻烦?》

  4、《JVM类加载机制》

转载于:https://www.cnblogs.com/cheuk-kwan/p/5300273.html

java.sql.SQLException: No suitable driver found for jdbc相关推荐

  1. 问题解决:java.sql.SQLException: No suitable driver found for jdbc:mysql

    文章目录 问题场景 问题环境 问题原因 1. 没有引入mysql驱动jar 2. JDK版本与mysql驱动版本有冲突 解决方案 结果 总结 参考链接 随缘求赞 问题场景 Java项目运行过程中,调用 ...

  2. java.sql.SQLException: No suitable driver found for jdbc...

    java.sql.SQLException: No suitable driver found for jdbc- 解决办法:尝试着将mysql-connector-java-xxx.jar的jar包 ...

  3. java.sql.SQLException: No suitable driver found for “jdbc:mysql://localhost:3306/db1“;

    操作jdbc出现 java.sql.SQLException: No suitable driver found for "jdbc:mysql://localhost:3306/db1&q ...

  4. 关于java.sql.SQLException: No suitable driver found for jdbc:mysql:

    java.sql.SQLException: No suitable driver found for jdbc:mysql://192.168.0.110:3309/man?auotReconnec ...

  5. 连接数据库出错:java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/

    连接数据库出错 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ 今天在做Java we ...

  6. java.sql.SQLException: No suitable driver found for jdbc:mysql

    1.把mysql-connector-java-5.1.35-bin.jar 放到 私有仓库maven,或者放到 Build path , 2.把mysql-connector-java-5.1.35 ...

  7. 使用DriverManager动态加载JDBC驱动时,报:java.sql.SQLException: No suitable driver found for xxxx 错误

    参考文章: yanbin.blog - 自定义类加载器动态加载 JDBC 驱动 项目场景: 使用DriverManager动态加载JDBC驱动时,报:java.sql.SQLException: No ...

  8. Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource.

    记录java Mybatis框架学习过程中遇到的问题 1.搭建第一个mybatis项目的时候发生异常: Exception in thread "main" org.apache. ...

  9. 运行mybatis时显示报错:Error updating database. Cause: java.sql.SQLException: Error setting driver on

    在运行mybatis测试类的时候,结果报错; Error updating database. Cause: java.sql.SQLException: Error setting driver o ...

最新文章

  1. 物理生力热实验不确定度计算源代码
  2. Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法
  3. spring-servlet.xml与applicationContext.xml
  4. b^3 - a^3 = c
  5. 【spring cloud zookeeper】KeeperErrorCode = Unimplemented for
  6. 启动Tomcat 7一闪而过的问题
  7. linux:tomcat写入文件失败
  8. (88)Verilog HDL系统函数和任务:$fdisplay
  9. Nginx 日志配置实践
  10. [翻译] RAReorderableLayout
  11. 老大加需求:做一个支持超大文件HTTP断点续传的上传服务,我懵逼了~
  12. linux终端黑绿字配色方案注意事项
  13. java 文件流 追加_JAVA向文件中追加内容(转)
  14. EViews8.0程序安装及注意事项
  15. 联众打码平台接口调用(初版)
  16. 银联在线java接口开发_银联在线Java接口开发
  17. 战狼2影评-20170807
  18. mysql中ai是什么意思_MySQL explain用法
  19. 从产业互联网的角度,解读360智慧商业发布“春雨计划”
  20. 让IE6,IE7,IE8共存

热门文章

  1. PDF文件怎么拆分?看完就会了!
  2. CVPR 2020 | 旷视研究院提出数据不确定性算法 DUL,优化人脸识别性能
  3. Phonetic symbol 辅音 - 清辅音 -- /k/
  4. 虚幻蓝图数据传递_数据产品的战略蓝图
  5. intellij idea处理xml文件File encoding is disabled,Encoding is hard-coded in the text.提示的方法
  6. 计算机专业考研 数学分析,中国农业大学2018年计算机考研816数学分析考试大纲...
  7. java 根据环境导包_java环境变量配置原理解析以及eclipse导入外包的方法
  8. 世界上第一个bug的发现者——被誉为“COBOL 之母”的葛丽丝 · 霍普。
  9. html插入flash时钟,教你利用Flash制作一个会走动的时钟(时针,分针,秒针)
  10. Unity UI 框架