2014-09-24 6 views
0

Я пытаюсь использовать класс Java, который уже работал большой для меня в прошлом, чтобы получить доступ к MySQL из моего проекта JSP, под управлением Tomcat 6. Проблема заключается в том, что эта строка:DriverManager.getConnection возвращает нулевое значение

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "password"); 

дает значение null.

Теперь, мой вопрос: что может вызвать метод getConnection null?

Редактировать: Теперь я вижу, что также получаю печально известное ClassNotFoundException: com.mysql.jdbc.Driver. У меня есть соединитель, включенный в мой путь сборки. Так почему я получаю эту ошибку? И это связано с тем, что getConnection возвращает null?

+3

AFAIK Ничто не может привести к его возврату 'null'. Вы, скорее всего, глотаете исключение. –

+0

Наличие чего-то на пути сборки не обязательно означает, что оно находится на пути к среде выполнения. –

ответ

0

Вам необходимо инициализировать драйвер, прежде чем вы сможете получить соединение с DriverManager.

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

Ваш адрес не заполнен. За номером jdbc:mysql://localhost:3306 следует имя базы данных.

Trouble шаги стрелять:

  1. Проверьте порт
  2. Проверьте, если сервер БД включен
+0

имя базы данных не является обязательным. если вы хотите использовать соединения с различными схемами базы данных, вы опускаете это имя и помещаете его в запрос: «SELECT * FROM .

'' – benez

0

Согласно этой статье (который имеет хороший пример) http://www.vogella.com/tutorials/MySQLJava/article.html,

«con» будет null, если getConnection выдает исключение и попадает в ваш код.

Как:

Connection con = null; 
try{ 
con = DriveManager.getConnection("Not right url"); 

}catch(SQLException sqlE){}; 
System.out.println(con); //it will be null 

вам нужно сделать

connect = DriverManager.getConnection("jdbc:mysql://localhost/feedback?" 
      + "user=sqluser&password=sqluserpw"); 

Так, может быть, у "пользователя = корень & пароль = пароль"

Кроме того, если есть ClassNotFoundException, скорее всего, вам нужно jar file

DriverManager API: http://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html#getConnection(java.lang.String)

+0

(если есть что-то не так с ответом, пожалуйста, укажите, почему вы благодарны) – Rika

+0

Я не спустил вниз, но ваша ссылка не имеет отношения к этому вопросу (и если бы это было, вы должны хотя бы процитировать или обобщить соответствующие части) и 'DriverManager.getConnection' по спецификации никогда не возвращает' null'. Вы можете проверить это, посмотрев код 'DriverManager'. –

+0

@MarkRotteveel В моем ответе я сказал, что если getConnection не выполняется должным образом, он будет возвращать null, потому что, скорее всего, из-за ошибки соединения, похоже, что его строка не подходит, поскольку параметр не сделан правильно, но также может быть он не имеет файла jar, он очень похож на ссылку, которую вы ему предоставили – Rika

0

Если вы работаете с JDBC 3, то вам нужно загрузить драйвер, как

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

Если вы работаете с JDBC 4, то вы больше не нужно вручную загружать JdbcDriver.

А затем передать действительный connection_url к getConnection

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/yourDbName", "root", "password"); 

Наконец убедитесь, что mysql driver jar находится в пути к классам.

Смежные вопросы