已解決No suitable driver found for jdbc:mysql://localhost:3306/ 問(wèn)題
一、Bug描述
在學(xué)習(xí)java數(shù)據(jù)庫(kù)連接池使用的時(shí)候遇到問(wèn)題,無(wú)法連接到數(shù)據(jù)庫(kù),查看日志是"No Suitable Driver Found For Jdbc",但查看數(shù)據(jù)庫(kù)連接配置沒(méi)問(wèn)題。
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
嚴(yán)重: 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鏂規(guī)硶瀹屾垚淇濆瓨
22: UserDTO u = new UserDTO(0,name,pwd,sex,age,remark);
23: boolean b = new UserDAO().addUser(u);
24:
25: //鏍規(guī)嵁娉ㄥ唽鐘舵?佽繘琛岃煩杞?
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)
這個(gè)問(wèn)題可把我愁壞了,要不問(wèn)一下GPT?上。
二、定位報(bào)錯(cuò)點(diǎn)及原因
問(wèn)了一下GPT,得到的答案是這樣的。 簡(jiǎn)單的來(lái)說(shuō),就是可能驅(qū)動(dòng)程序有問(wèn)題,或者是URL的問(wèn)題。
.
三、最終的解決方案
首先,下載數(shù)據(jù)庫(kù)鏈接的jar包:https://dev.mysql.com/downloads/connector/
進(jìn)去之后找到對(duì)應(yīng)好的一個(gè)jar包下載。
下載好了之后,按照路徑進(jìn)去,可以看到用于 數(shù)據(jù)庫(kù)鏈接的驅(qū)動(dòng) Driver.class
出現(xiàn)上述報(bào)錯(cuò)的原因通常有三種:
1、URL格式不對(duì):正確為
Connectionconn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/XX”,“root”,“XXXX”)
2、驅(qū)動(dòng)字符串出錯(cuò)(com.mysql.jdbc.Driver)
3、Classpath中沒(méi)有加入合適的mysql_jdbc驅(qū)動(dòng)
那么對(duì)應(yīng)的解決方案如下:
1、書(shū)寫(xiě)正確的URL格式
2、書(shū)寫(xiě)正確的驅(qū)動(dòng)字符串
3、將驅(qū)動(dòng)加入CLASSPATH
四、相關(guān)注意事項(xiàng)
總結(jié)來(lái)說(shuō)解決方案如下:
1, 連接URL格式出現(xiàn)了問(wèn)題(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
2, 驅(qū)動(dòng)字符串出錯(cuò)(com.mysql.jdbc.Driver)
3, Classpath中沒(méi)有加入合適的mysql_jdbc驅(qū)動(dòng)
4, 嘗試著將mysql-connector-java-5.1.34-bin.jar的jar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夾下(或者直接導(dǎo)入項(xiàng)目中),問(wèn)題解決
5, 檢查是不是jdbc:mysql://寫(xiě)成了jdbc:mysql// 連接寫(xiě)不對(duì)也會(huì)報(bào)這個(gè)找不到驅(qū)動(dòng)的錯(cuò)
如果以上錯(cuò)誤都不是,還有一種常見(jiàn)錯(cuò)誤,就是jre1.8.0_162\lib\ext目錄下沒(méi)有加入jar包,解決辦法很簡(jiǎn)單,將mysql-connector-java.jar包復(fù)制到 C:\Program Files\Java\jre1.8.0_162\lib\ext 目錄下即可
總結(jié)
Hello,各位看官老爺們好,洲洲已經(jīng)建立了技術(shù)交流群,如果你很感興趣,可以私信我加入我的社群。
??社群中不定時(shí)會(huì)有很多活動(dòng),例如每周都會(huì)包郵免費(fèi)送一些技術(shù)書(shū)籍及精美禮品、學(xué)習(xí)資料分享、大廠面經(jīng)分享、技術(shù)討論、行業(yè)大佬創(chuàng)業(yè)雜談等等。
??社群方向很多,相關(guān)領(lǐng)域有Web全棧(前后端)、人工智能、機(jī)器學(xué)習(xí)、自媒體變現(xiàn)、前沿科技文章分享、論文精讀等等。
??不管你是多新手的小白,都?xì)g迎你加入社群中討論、聊天、分享,加速助力你成為下一個(gè)技術(shù)大佬!也隨時(shí)歡迎您跟我溝通,一起交流,一起成長(zhǎng)。變現(xiàn)、進(jìn)步、技術(shù)、資料、項(xiàng)目、你想要的這里都會(huì)有
??網(wǎng)絡(luò)的風(fēng)口只會(huì)越來(lái)越大,風(fēng)浪越大,魚(yú)越貴!歡迎您加入社群~一個(gè)人可以或許可以走的很快,但一群人將走的更遠(yuǎn)!
??關(guān)注我的公眾號(hào)(與CSDN同ID:程序員洲洲)可以獲得一份Java 10萬(wàn)字面試寶典及相關(guān)資料!~
??想都是問(wèn)題,做都是答案!行動(dòng)起來(lái)吧!歡迎評(píng)論區(qū)or后臺(tái)與我溝通交流,也歡迎您點(diǎn)擊下方的鏈接直接加入到我的交流社群!~ 跳轉(zhuǎn)鏈接社區(qū)~文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-469118.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-469118.html
到了這里,關(guān)于已解決No suitable driver found for jdbc:mysql://localhost:3306/ 問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!