jython zxJDBC UCanAccess驱动程序类?

问题描述

试图使组合 jython-zxJDBC-ucanaccess 在我的Windows机器上运行;一整天都在让我发疯

zxJDBC.DatabaseError(未找到驱动程序[net.ucanaccess.jdbc.ucanaccessDriver]),以及 zxJDBC.DatabaseError(未找到驱动程序[ucanaccess])

我一直在使用Gord Thompson中的示例代码来提供我的详细信息-尝试执行时,始终会因未发现驱动程序错误而失败:

from com.ziclix.python.sql import zxJDBC
#Or also import ucanaccess

jdbc_url = "jdbc:ucanaccess://Z:/Companies.accdb"
username = ""
password = ""
driver_class = "net.ucanaccess.jdbc.ucanaccessDriver"
#Or driver_class = "net.ucanaccess.jdbc.UcanloadDriver"

cnxn = zxJDBC.connect(jdbc_url,username,password,driver_class)
crsr = cnxn.cursor()
crsr.execute("SELECT * FROM tblSICs")
for row in crsr.fetchall():
    print row[0]
crsr.close()
cnxn.close()
  • 单独使用Jython效果很好,我将其与SikuliX IDE一起使用
  • “从...导入zxJDBC”顺利通过
  • ucanaccess在我的MS上从命令行(console.bat)运行正常 访问数据库;所有5个JAR都位于CLAsspATH变量中,并且与之相同

我不明白什么是“ driver_class”?我以为,通过CLAsspATH中的Jython / SikuliX可以找到特定于数据库的驱动程序,在其中可以看到“ ... / ucanaccess-5.0.0.jar”。

这是CLAsspATH:

"c:\Users\User\AppData\Roaming\ucanaccess\lib\hsqldb-2.5.0.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\jackcess-3.0.1.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\commons-lang3-3.8.1.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\commons-logging
-1.2.jar;c:\Users\User\AppData\Roaming\ucanaccess\ucanaccess-5.0.0.jar"

这是SikuliX IDE查找资源的地方:

D:\ Drawer 3 \ Sikuli \ Training \ ucanaccess.sikuli Z:\ test.sikuli C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Lib \ site-packages C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Lib C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ Lib C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ jython-standalone-2.7.2.jar \ Lib classpath pyclasspath /

有人发现问题了吗?

解决方法

发现该问题是SikuliX 2.0.4的一种特殊形式,无法评估CLASSPATH变量。这里是变通方法/ SiluliX了解JAR位置的方法:

两种解决方案:

解决方案A

SikuliX IDE进入文件夹 ;所有五个相关 JAR文件需要放置在该文件夹中(不存在“ lib”子文件夹 部署包):

  • ucanaccess-5.0.0.jar

  • commons-lang3-3.8.1.jar

  • commons-logging-1.2.jar

  • hsqldb-2.5.0.jar

  • jackcess-3.0.1.jar

通过查看发现的扩展JAR SikuliX->工具->扩展...

解决方案B

将所需的JAR保留在其原始部署文件夹中,然后添加 他们到“特殊文件”的路径 'C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ extensions.txt'为:

  • ucanaccess = C:/用户/用户/ AppData /漫游/UCanAccess/ucanaccess-5.0.0.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-lang3-3.8.1.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-logging-1.2.jar

  • C:/用户/用户/ AppData /漫游/UCanAccess/lib/hsqldb-2.5.0.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/jackcess-3.0.1.jar

这将作为替代方法进行评估,而不是CLASSPATH 变量

感谢您的帮助!