jaydebeapi для Netezza и MySQL
Я использую jaydebeapi в Python 3 для запуска запросов. Мне нужно подключиться к Netezza и MySql. мой код выполняет оба запроса по отдельности без каких-либо проблем, но когда я запускаю один за другим, он выдает ошибку для второго. Я закрываю соединение и курсор для первого запроса (Netezza), но все равно получаю следующую ошибку:
jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.mysql.jdbc.Driver not found
2 ответа
Проблема не в том, что вам нужно закрыть одно соединение, чтобы использовать другое. Проблема в том, что когда jaydebeapi
использует jpype
для связи вы получаете только одну возможность указать все необходимые пути к файлам JAR, которые вы можете использовать. Это можно увидеть в _jdbc_connect_jpype
Функция здесь.
Исправление заключается в передаче всех путей к файлам JAR, которые вы можете использовать во время выполнения вашей программы.
Я предполагаю, что вы не работаете на Jython и вместо этого
jaydebeapi
автоматически устанавливаетсяjpype
для облегчения связи между Python и Java. Это наиболее вероятный сценарий для ситуации "из коробки". Если вы используете Jython, дайте мне знать.
Нужно добавить драйвер Class Mysql и путь к файлу JAR, например, в DB2 с IMB jar:
conn = jaydebeapi.connect ("com.ibm.as400.access.AS400JDBCDriver", "url", ["user", "password"], "C: \ lib \ jt400.jar",)