已解决No suitable driver found for jdbc:mysql:localhost:3306 问题
作者:mmseoamin日期:2023-12-14

已解决No suitable driver found for jdbc:mysql://localhost:3306/ 问题

已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第1张

本文目录

  • 一、Bug描述
  • 二、定位报错点及原因
  • 三、最终的解决方案
  • 四、相关注意事项
  • 总结

    一、Bug描述

    在学习java数据库连接池使用的时候遇到问题,无法连接到数据库,查看日志是"No Suitable Driver Found For Jdbc",但查看数据库连接配置没问题。

    java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/db_mydb?characterEncoding=utf8&useSSL=false
     at java.sql.DriverManager.getConnection(Unknown Source)
     at java.sql.DriverManager.getConnection(Unknown Source)
     at com.luojia.sims.utils.DBManager.getConn(DBManager.java:30)
     at com.luojia.sims.dao.UserDAO.addUser(UserDAO.java:22)
     at org.apache.jsp.user_005fsave_jsp._jspService(user_005fsave_jsp.java:135)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:500)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
     at java.lang.Thread.run(Unknown Source)
    四月 08, 2018 8:07:34 下午 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet [jsp] in context with path [/sims] threw exception [An exception occurred processing [user_save.jsp] at line [23]
    20:    
    21:    //璋冪敤UserDAO涓殑addUser鏂规硶瀹屾垚淇濆瓨
    22:    UserDTO u = new UserDTO(0,name,pwd,sex,age,remark);
    23:    boolean b = new UserDAO().addUser(u);
    24:    
    25:    //鏍规嵁娉ㄥ唽鐘舵?佽繘琛岃烦杞?
    26:    if(b){
    Stacktrace:] with root cause
    java.lang.NullPointerException
     at com.luojia.sims.dao.UserDAO.addUser(UserDAO.java:24)
     at org.apache.jsp.user_005fsave_jsp._jspService(user_005fsave_jsp.java:135)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:500)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
     at java.lang.Thread.run(Unknown Source)
    

    这个问题可把我愁坏了,要不问一下GPT?上。

    已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第2张

    二、定位报错点及原因

    问了一下GPT,得到的答案是这样的。 简单的来说,就是可能驱动程序有问题,或者是URL的问题。

    .已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第3张

    三、最终的解决方案

    首先,下载数据库链接的jar包:https://dev.mysql.com/downloads/connector/

    进去之后找到对应好的一个jar包下载。

    下载好了之后,按照路径进去,可以看到用于 数据库链接的驱动 Driver.class

    已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第4张

    出现上述报错的原因通常有三种:

    1、URL格式不对:正确为

    Connectionconn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/XX”,“root”,“XXXX”)

    2、驱动字符串出错(com.mysql.jdbc.Driver)

    3、Classpath中没有加入合适的mysql_jdbc驱动

    那么对应的解决方案如下:

    1、书写正确的URL格式

    2、书写正确的驱动字符串

    3、将驱动加入CLASSPATH

    四、相关注意事项

    总结来说解决方案如下:

    1, 连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
    2, 驱动字符串出错(com.mysql.jdbc.Driver)
    3, Classpath中没有加入合适的mysql_jdbc驱动
    4, 尝试着将mysql-connector-java-5.1.34-bin.jar的jar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夹下(或者直接导入项目中),问题解决
    5, 检查是不是jdbc:mysql://写成了jdbc:mysql// 连接写不对也会报这个找不到驱动的错
    

    如果以上错误都不是,还有一种常见错误,就是jre1.8.0_162\lib\ext目录下没有加入jar包,解决办法很简单,将mysql-connector-java.jar包复制到 C:\Program Files\Java\jre1.8.0_162\lib\ext 目录下即可

    已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第5张

    总结

    Hello,各位看官老爷们好,洲洲已经建立了技术交流群,如果你很感兴趣,可以私信我加入我的社群

    📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论、行业大佬创业杂谈等等。

    📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体变现、前沿科技文章分享、论文精读等等。

    📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个技术大佬!也随时欢迎您跟我沟通,一起交流,一起成长。变现、进步、技术、资料、项目、你想要的这里都会有

    📝网络的风口只会越来越大,风浪越大,鱼越贵!欢迎您加入社群~一个人可以或许可以走的很快,但一群人将走的更远!

    📝关注我的公众号(与CSDN同ID:程序员洲洲)可以获得一份Java 10万字面试宝典及相关资料!~

    📝想都是问题,做都是答案!行动起来吧!欢迎评论区or后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~ 跳转链接社区~

    已解决No suitable driver found for jdbc:mysql:localhost:3306 问题,在这里插入图片描述,第6张