2012-03-09 114 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