2013-03-26 191 views
0

我正在嘗試建立到MySQL數據庫的連接來讀取和寫入數據。 不過,我在嘗試運行這段代碼時出錯:通過JSP連接到MySQL

public void openConnection() throws SQLException { 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/jared_bookoo",           "root", "pass"); 
    Statement stmt = conn.createStatement(); 
} 

奇怪的是,我所有的測試,當我運行JUnit測試通過。我能夠正確讀取數據庫並返回正確的數據。但是,一旦我把它掛到一個JSP,並嘗試從本地託管的網頁,閱讀它,我得到以下錯誤:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/jared_bookoo 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at jared.simpledatabase.DBInterface.openConnection(DBInterface.java:42) 
    ... 

這是怎麼回事,我怎麼能解決這個問題?驅動程序已安裝(並且正在運行;我可以在我的測試中從數據庫讀取),所以我沒有看到可能出現的問題。

回答

2

將MySQL驅動程序jar放入WEB-INF/lib庫中。你可以找到它here。另外,確保在生成war文件時,MySQL驅動程序jar文件位於web_app_name/WEB-INF/lib

另一個建議(以防萬一,因爲您沒有指定您調用該方法的位置):您應該從不嘗試直接在您的JSP中使用Java代碼。有關更多信息,請參閱How to avoid Java code in JSP files?

還有一個建議,在真實世界的Web應用程序中,您可以使用Data Source來獲得Connection。由於您不指定使用哪個應用程序服務器,因此我會舉例說明configuring the Data Source in Tomcat 7

+0

這樣做。非常感謝你的幫助!爲了澄清,數據庫連接代碼不在JSP中;它是在它自己的獨立班上。我只是在我的問題中包含了相關的內容。 – 2013-03-26 17:39:07

+0

@jarednielsen我沒有說過你把數據庫連接代碼放在你的JSP中,我只是澄清過你不應該在你的JSP中編寫任何類型的Java代碼,即scriptlets。 – 2013-03-26 19:09:42