#java #jdbc #jruby
#java #jdbc #jruby
Вопрос:
MySQL Connector / J (версия 5.1.6) выдает мне следующую ошибку после нескольких минут открытия и закрытия соединений каждую секунду):
java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/someQueue
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
...
Код просто:
Connection connection = DriverManager.getConnection(this.url, this.connectionProperties);
Где this.url
— URL, найденный в трассировке стека, и this.connectionProperties
является:
Properties props = new Properties();
props.put("user", "root");
props.put("password", "root");
Я попытался исправить это, сделав это по-старому, и добавив следующее прямо перед DriverManager.getConnection(...)
:
Class.forName("com.mysql.jdbc.Driver");
Но это не помогло. Кто-нибудь?
Спасибо, что уделили мне время!
Комментарии:
1. Вы создаете новое соединение для каждого запроса?
2. Да, я просто хотел что-то, что работает сейчас, без сложностей. Я также хочу знать, почему я получаю это исключение 😉
Ответ №1:
Это немного не по теме, но есть ли причина, по которой вы не можете использовать пул соединений? Это избавит вас от необходимости каждый раз создавать новое соединение. Проверьте Commons-DBCP, чтобы найти библиотеку, которая будет работать (в документации есть примеры).
Комментарии:
1. Ты меня опередил. Хотя я не думаю, что это не по теме. Если есть приложение, которое открывает и закрывает соединение примерно каждую секунду, пул соединений — это очень, очень хорошее предложение.
2. Вообще без причины, я просто хотел сначала что-то базовое. Я добавил большую часть кода, чтобы вы могли ознакомиться. Спасибо!
Ответ №2:
Проблема заключалась в JRuby версии 1.6.0_RC2. Несмотря на то, что она не использовалась активно в коде JDBC, я загружаю скрипт при запуске своего приложения.
Ошибку, влияющую на драйверы JDBC, можно найти здесь: JRUBY-5528
Спасибо всем за вашу помощь.