mysql - Jython 连接到 mysql,找不到驱动程序错误

标签 mysql driver jython

我正在尝试将 Jython 与 mysql 连接起来。我下载了“zxJDBC.jar”、“mm.mysql-2.0.4-bin.jar”和“mysql-connector-java-5.1.20-bin.jar”,并将它们的路径设置为CLASSPATH。

在我的 Jython 脚本中,两者都是

$from com.ziclix.python.sql import zxJDBC
$from org.gjt.mm.mysql import Driver

通过。

但是当

$conn = zxJDBC.connect("jdbc:mysql://localhost/automobile2", "root", "nihaonlp", "org.gjt.mm.mysql.Driver")

翻译告诉我的

$zxJDBC.DatabaseError: driver [org.gjt.mm.mysql.Driver] not found

如何解决?

最佳答案

看这里:

http://glasblog.1durch0.de/?p=846

基本上,这个技巧将使用 ClassLoader 加载您的类这样你就可以在 jython 中使用它了

http://www.jython.org/jythonbook/en/1.0/appendixB.html#using-the-classpath-steve-langer

我建议将脚本稍微修改为:

class classPathHacker:
    ##########################################################
    # from http://forum.java.sun.com/thread.jspa?threadID=300557
    #
    # Author: SG Langer Jan 2007 translated the above Java to this
    #       Jython class
    # Modified 2012 by Malte Vesper
    # Purpose: Allow runtime additions of new Class/jars either from
    #       local files or URL
    ######################################################
    import java.lang.reflect.Method
    import java.io.File
    import java.net.URL
    import java.net.URLClassLoader
    import jarray

    def addFile (self, path):
        #############################################
        # Purpose: If adding a file/jar call this first
        #       with path = path_to_jar
        #############################################

        return self.addURL (self.java.io.File (path).toUrl())

    def addURL (self, url):
        ##################################
        # Purpose: Call this with u= URL for
        #       the new Class/jar to be loaded
        #################################

        parameters = self.jarray.array([self.java.net.URL], self.java.lang.Class)
        sysloader =  self.java.lang.ClassLoader.getSystemClassLoader()
        sysclass = self.java.net.URLClassLoader
        method = sysclass.getDeclaredMethod("addURL", parameters)
        jar_a = self.jarray.array([url], self.java.lang.Object)
        method.invoke(sysloader, jar_a)
        return url

关于mysql - Jython 连接到 mysql,找不到驱动程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218358/

相关文章:

php - 使用谷歌脚本从 mysql 生成 xml

mysql - 为 INSERT 查询设置 LIMIT?

c++ - KMDF 的多线程 DeviceIOControl

c++ - 编写 ODBC 驱动程序的替代方法

websphere - 使用 wsadmin Jython 修改 namespace 绑定(bind)

mysql - 优化 SQL 查询

PHP安装后无法运行,为什么?

linux - 如何激活 phyless linux 以太网驱动程序

java - Jython 中的类型错误?

jython - Python 字符串转 Java 字节[]