Я думаю, что строка должна быть
Class.forName("com.mysql.jdbc.Driver");
(закрыть бит .newInstance()
)
Это заставляет драйвер зарегистрироваться в диспетчере драйверов и позволяет диспетчеру драйверов выбирать драйвер для URL базы данных.
Я думаю, что зависание вызвано проблемой DNS или другой причиной, по которой ваш db не может быть достигнут. По умолчанию драйвер MySQL JDBC не устанавливает время ожидания для соединения. Смотрите http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html и ищите connectTimeout
.
В вашем коде у вас есть
String url = "jdbc:mysql://www.domainName.com:portNumber/databaseName";
Я так понимаю, вы использовали реальный порт там? По умолчанию это должно быть 3306. Вы можете проверить с тестовой базой данных, которая присутствует практически во всех случаях mysql:
String url = "jdbc:mysql://www.domainName.com:3306/test";
Вы также написали:
String username = "myUserName";
String password = "myPassWord";
Очевидно, вам также следует использовать настоящие учетные данные. Спросите своего дба, кто они. Если вы администратор базы данных, то ... ну, вы, вероятно, должны прочитать об администрировании MySQl :) Серьезно, когда вы устанавливали MySQL, вам, вероятно, предлагали ввести пароль для пользователя root. Используйте их (очевидным образом)
В реальном коде вы, вероятно, не должны зависать, когда нет базы данных. Поэтому я советую добавить опцию connectTimeout примерно так:
String url = "jdbc:mysql://www.domainName.com:3306/test?connectTimeout=3000";
(connectTimeout
в миллисекундах, поэтому время ожидания истечет через 3 секунды)