Не удается подключиться к базе данных MySQL с JSP, Glassfish - PullRequest
0 голосов
/ 09 марта 2012

У меня был предыдущий опыт работы с JSP, но с использованием Tomcat и Resin, и я хотел бы подключиться к базе данных 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 | 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 ]

3 голосов
/ 09 марта 2012

Вы используете старое и устаревшее имя класса драйвера для самых первых выпусков драйвера MySQL JDBC org.gjt.mm.mysql.Driver, когда это был еще хобби-проект, в то время как вы используете один из более свежих выпусков MySQL JDBCдрайвер с именем класса драйвера com.mysql.jdbc.Driver.

Исправьте имя класса соответствующим образом.

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

Убедитесь, что вы читаете официальную документацию драйвера MySQL JDBC вместо некоторого случайного и сильно устаревшего ресурса / книги / учебника.

Что касается размещения файла JAR, когда вы управляете соединениями самостоятельно в своем веб-приложении, JAR можетразмещаться как на собственном сервере /lib, так и в веб-приложении /WEB-INF/lib.Но когда вы позволяете серверу управлять соединениями (которые обычно используют общий пул соединений, который way намного быстрее), тогда JAR-файл должен быть помещен в собственную папку /lib сервера.Тот, что в развернутом веб-приложении (ах), в любом случае будет игнорироваться.

0 голосов
/ 09 марта 2012

Попробуйте поработать с 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 соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...