【问题标题】:jaydebeapi for both Netezza and MySQL适用于 Netezza 和 MySQL 的 jaydebeapi
【发布时间】: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

【问题讨论】:

  • 请分享您的代码。

标签: python mysql python-3.x netezza jaydebeapi


【解决方案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",)

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多