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",)

Другие вопросы по тегам