最近自己在寫個小小的Web專案,不打算使用任何框架,單純的使用Servlet + JDBC,

但在用JDBC建立連線的時候發現都會出現以下錯誤,

No suitable driver found for jdbc:....

沒放入JDBC driver的錯誤會是"java.lang.ClassNotFoundException",但這例外訊息意思是DriverManager找不到資料庫的JDBC driver,但明明jdbc driver的jar檔已經放在WEB-INF/lib資料夾下了,更奇怪的是之後的連線卻又可以存取

 

最後發現原來是忘了先載入jdbc driver = =,由於在程式中沒有預先載入,所以第一次連線就會出現 No suitable driver found for jdbc:... 的錯誤。

所以若driver的jar檔是放在WEB-INF/lib下的話,必須在DriverManager.getConnection(url);取得連線之前先用以下方式載入JDBC driver,原因參考這裡

Class.forName ("oracle.jdbc.OracleDriver");

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

這樣第一次連線才不會出現上述問題。

 

若要讓JDBC driver自動地註冊,則JDBC driver的jar檔應放在$CATALINA_BASE/lib的位置,也就是tomcat資料夾下的lib資料夾。

但目前我即使放在該資料夾一樣會出現上述問題...,所以最終還是要用上面的方法將driver註冊,真不知問題在哪...?

 

最後關於JNDI datasource的連線方式可參考這篇官方的文章

 

創作者介紹

菲比傻大姐&肉豬

phoebelin0606 發表在 痞客邦 PIXNET 留言(0) 人氣()