我正在尝试将 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/