gpt4 book ai didi

java - Python 3.7 连接到 MAC 上的 HSQLDB

转载 作者:行者123 更新时间:2023-12-02 01:58:40 25 4
gpt4 key购买 nike

尝试使用 python 3.7、jaydebeapi 和 jpype 连接到 HSQLDB Java 数据库。我尝试了以下方法

import jaydebeapi

UserName = "SA"
Password = ""
Java_Class = "org.hsqldb.jdbcDriver"
HSQL_Driver_Path = "/Hsqldb/driver/hsqldb.jar"
Database = "jdbc:hsqldb:/Hsqldb/database/OneDatabase"
jaydebeapi.connect(Java_Class,Database,[UserName,Password],jars=HSQL_Driver_Path)

它导致了以下错误

java.lang.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class org.hsqldb.jdbcDriver not found

Google 指出这是一个类路径错误,我需要添加一个类路径来修复。

编辑:设置详细信息:Mac、anaconda、python 3.7

我使用 RJDBC 库在 R 中尝试了类似的操作,并且能够正常连接。

PathDriver = "/Hsqldb/driver/hsqldb.jar"
JDBCDriver = "org.hsqldb.jdbcDriver"
drv <- JDBC(JDBCDriver,PathDriver)

# Connect to Database
DatabaseP <- "jdbc:hsqldb:file:////Hsqldb/database/OneDatabase"
Con <- dbConnect(drv,DatabaseP,"SA","")

编辑:设置详细信息:Mac、R、Rstudio

我将 R 与 Anaconda 分开,因为 Anaconda 阻止了我想要使用的许多库。

这可能是苹果与橘子的区别,但是为什么当 R 执行该函数时 Python 需要一个类路径集呢?如何为Python的HSQLDB设置类路径?

最佳答案

启动 JPype 时,它​​要么从环境变量 CLASS_PATH 中获取类路径,要么从使用 jpype.startJVM(classpath="...") 定义的手动指定的类路径中获取类路径。 > 命令。如果您不必直接从 JPype 调用该命令,则该命令可能是 jaydebeapi api 的一部分。

我假设 R 在内部定义了自己的类路径,因此从 JVM 中看到的内容可能会有所不同。这可能包括选择不同的 JVM、包含不同位置的类路径,或者在某些情况下,如果驱动程序具有 native 部分(例如 MS SQLServer),则库路径也可能不正确。为了让 JDBC 驱动程序加载所有需要找到的部分,包括 jar、支持 jar 和 native 共享库。如果所有其他方法都失败,请尝试使用 Class.forname 手动加载 java 类。它可以为您提供有关缺少哪一 block 的进一步诊断。

关于java - Python 3.7 连接到 MAC 上的 HSQLDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57385964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com