簡體   English   中英

Jython連接到mysql,找不到驅動程序錯誤

[英]Jython connect to mysql, Driver not found error

我正在嘗試將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

如何解決?

H

在這里看看:

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

基本上,此技巧將使用ClassLoader加載您的類,以便您可以從jython中使用它

http://www.jython.org/jythonbook/zh/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

我是來這里尋找相同錯誤的解決方案的。 問題是我在Eclipse Luna和pydev + jython中運行。 從我在其他地方讀到的內容,IDE忽略了類路徑環境變量,由於缺乏可移植性,因此它被認為是不好的做法。

無論如何,對於初學者來說eclipse / pydev相當繁重,我花了一些時間來找出解決方案,我想分享一下。

因此,在安裝驅動程序之后,該驅動程序可以在任何位置運行,但當前Windows版本沒有安裝msi安裝程序,該安裝程序會將其放在Program Files(x86)\\ Mysql下。

在Eclipse中,轉到“窗口”->“首選項”->“ PyDev”->“解釋器”->“ Jython解釋器”。

在此處,找到“庫”面板(通常默認情況下處於打開狀態),然后選擇“ New Jar”按鈕。 瀏覽找到已安裝驅動程序的jar,然后選擇它。 那應該將jar添加到列表中,然后在運行時找到驅動程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM