适用于 Netezza 和 MySQL 的 jaydebeapi
Posted
技术标签:
【中文标题】适用于 Netezza 和 MySQL 的 jaydebeapi【英文标题】:jaydebeapi for both Netezza and MySQL 【发布时间】:2018-04-03 17:55:50 【问题描述】:我在 python 3 中使用 jaydebeapi 来运行查询。 我需要同时连接到 Netezza 和 mysql。我的代码分别运行这两个查询没有任何问题,但是当我一个接一个运行时,它会为第二个查询提供错误。 我关闭了第一个查询(Netezza)的连接和游标,但仍然出现以下错误:
jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.mysql.jdbc.Driver not found
【问题讨论】:
请分享您的代码。 【参考方案1】:问题不在于您需要关闭一个连接才能使用另一个连接。问题是,当jaydebeapi
使用jpype
进行通信时,您只有一次机会提供您可能使用的所有必要的JAR 文件路径。这可以在_jdbc_connect_jpype
函数here 中看到。
解决方法是传递您在程序执行期间可能使用的所有 JAR 文件路径。
我假设您没有在 Jython 上运行,而是在
jaydebeapi
自动安装jpype
方便Python转Java 沟通。这是“出局”最有可能发生的情况 box”的情况。如果您使用的是 Jython,请告诉我。
【讨论】:
有什么办法吗?我需要经常在 Netezza 和 Mysql 之间切换 调用连接函数时只需传入两个 JAR 路径。那应该可以解决它。 如果您愿意,请分享您对 Netezza 和 MySQL 的connect
语句,我可以向您展示您应该使用的代码。【参考方案2】:
你需要添加 Class Mysql Driver 和 JAR 文件路径,例如 DB2 和 IMB jar:
conn = jaydebeapi.connect("com.ibm.as400.access.AS400JDBCDriver", “网址”, [“用户密码”], "C:\lib\jt400.jar",)
【讨论】:
以上是关于适用于 Netezza 和 MySQL 的 jaydebeapi的主要内容,如果未能解决你的问题,请参考以下文章