2012-03-09 111 views
0

我有以前的JSP經驗,但使用Tomcat和Resin,我想使用Glassfish連接到mySQL數據庫,並希望或多或少地複製和粘貼代碼將工作。使用JSP無法連接到mysql數據庫,Glassfish

的代碼是:

try { 
     Class.forName("org.gjt.mm.mysql.Driver"); 
    } catch (Exception E) { 
     System.out.println("First: " + E); 
    } 

Connection conn = DriverManager.getConnection("jdbc:mysql://xxx.xx.xx.xx:xxxx/DBName", "Username", "Password"); 

我得到的錯誤,當我看着我的服務器日誌

[#| 2012-03-09T13:50:21.900 + 0000 |信息| glassfish3.1 | javax.enterprise.system.std.com.sun.enterprise.server.logging | _ThreadID = 67; _ThreadName = Thread-1; | First: java.lang.ClassNotFoundException:org.gjt.mm.mysql。 Driver |#]

[#| 2012-03-09T13:50:22.009 + 0000 | INFO | glassfish3.1 | jav找不到合適的驅動程序: jdbc:mysql:// xxx。 XX.XX.XX.XX/SmarterStudents |#]

我已經把使用mysql-connector-java的5.0.7-bin.jar到域/ lib文件夾,並把它扔到WEB-INF/lib文件夾只是爲了安全,它仍然不會爲我工作。

我現在在我的智慧的結尾,我只是不知道該怎麼做。 D:

+0

http://stackoverflow.com/q/8873211/870122 – perissf 2012-03-09 14:39:33

回答

2

當您使用MySQL JDBC驅動程序的更新版本之一時,您仍然使用舊的和不推薦使用的驅動程序類名稱作爲第一次發佈的MySQL JDBC驅動程序org.gjt.mm.mysql.Driver其中驅動程序類名稱爲com.mysql.jdbc.Driver

相應地修復類名。

Class.forName("com.mysql.jdbc.Driver"); 

確保您正在閱讀的official MySQL JDBC driver documentation而不是一些隨機的和嚴重過時的資源/電子書/教程。

至於JAR文件的位置,當你管理你的Web應用程序的連接自己,罐子被放置在兩個服務器自身/lib或web應用程序的/WEB-INF/lib。但是當你讓服務器管理連接時(通常使用共享連接池,這種連接池的方式要快得多),那麼JAR必須放在服務器自己的/lib文件夾中。無論如何,部署的webapp中的一個將被忽略。

-2

嘗試與JdbcOdbcDriver一起工作,但通常他們說它應該作爲最後的手段使用。

try 
{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    con=DriverManager.getConnection("jdbc:odbc:db","root","root"); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

這應該MySQL數據庫的工作,你需要安裝連接器此爲好,一般爲MySQL用戶名和密碼分別是根和根。

+0

-1:當您可以選擇使用供應商的JDBC實現時不要使用ODBC橋 – 2012-03-09 20:20:02