无法使用JSP,Glassfish连接到mysql数据库

时间:2012-03-09 14:28:41

标签: java mysql jdbc glassfish

我有以前的JSP经验,但使用Tomcat和Resin,我想使用Glassfish连接到mySQL数据库,并希望或多或少地复制和粘贴代码。

代码是:

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 | INFO | glassfish3.1 | javax.enterprise.system.std.com.sun.enterprise.server.logging | _ThreadID = 67; _ThreadName = Thread- 1,|首先:   java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver |#]

     

[#| 2012-03-09T13:50:22.009 + 0000 | INFO | glassfish3.1 | javax.enterprise.system.std.com.sun.enterprise.server.logging | _ThreadID = 67; _ThreadName = Thread- 1; | java.sql.SQLException中:   找不到合适的驱动程序   JDBC:MySQL的://xxx.xx.xx.xx.xx/SmarterStudents |#]

我已将mysql-connector-java-5.0.7-bin.jar放入domain / lib文件夹并将其扔进WEB-INF / lib文件夹只是为了安全起见它仍然不适用于我。

我现在已经结束了,我只是不知道该怎么做。 d:

2 个答案:

答案 0 :(得分:3)

当你仍然是一个业余爱好项目时,你正在使用旧的和已弃用的驱动程序类名称作为MySQL JDBC驱动程序org.gjt.mm.mysql.Driver的第一个版本,而你使用的是最近的一个版本的MySQL JDBC驱动程序,其驱动程序类名为com.mysql.jdbc.Driver

相应地修复类名。

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

确保您正在阅读official MySQL JDBC driver documentation而不是一些随机且过时的资源/书籍/教程。

关于JAR文件的位置,当您在Web应用程序中管理自己连接时,JAR可以放在服务器自己的/lib或webapp的{{ 1}}。但是,当您让服务器管理连接(通常使用 way 的共享连接池)时,JAR必须放在服务器自己的/WEB-INF/lib文件夹中。无论如何,已部署的webapp中的那个将被忽略。

答案 1 :(得分:-2)

尝试使用JdbcOdbcDriver,但通常他们会说这应该用作最后的手段。

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

这应该适用于MySQL数据库,您也需要为此安装连接器,MySQL的用户名和密码通常分别为root和root。