Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在jython不工作的情况下使用zxJDBC_Python_Mysql_Class_Jython - Fatal编程技术网

Python 在jython不工作的情况下使用zxJDBC

Python 在jython不工作的情况下使用zxJDBC,python,mysql,class,jython,Python,Mysql,Class,Jython,因为我想将我最近的Minecraft Python/Jython Bukkit插件的数据存储从平面文件转换为MySQL数据库,所以我开始在谷歌上搜索。尝试了sqlite3和MySQLd for Python,但没有成功,所以在搜索StackOverflow几个小时后,我找到了这个问题和答案,这应该可以解决我的问题,因为这是同一件事。我尝试按照中给出的步骤进行操作,但由于此错误,没有成功: [15:31:45 WARN]: org.bukkit.plugin.InvalidPluginExcept

因为我想将我最近的Minecraft Python/Jython Bukkit插件的数据存储从平面文件转换为MySQL数据库,所以我开始在谷歌上搜索。尝试了sqlite3和MySQLd for Python,但没有成功,所以在搜索StackOverflow几个小时后,我找到了这个问题和答案,这应该可以解决我的问题,因为这是同一件事。我尝试按照中给出的步骤进行操作,但由于此错误,没有成功:

[15:31:45 WARN]: org.bukkit.plugin.InvalidPluginException: Traceback (most recen
t call last):
File "<iostream>", line 10, in <module>
zxJDBC.DatabaseError: unable to instantiate datasource

[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:296)
[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:113)
[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:83)
[15:31:45 WARN]:        at org.bukkit.plugin.SimplePluginManager.loadPlugin(Simp
lePluginManager.java:305)
[15:31:45 WARN]:        at com.master.bukkit.python.PythonLoader.onLoad(PythonLo
ader.java:113)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin
s(CraftServer.java:260)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(Cra
ftServer.java:628)
[15:31:45 WARN]:        at org.bukkit.Bukkit.reload(Bukkit.java:279)
[15:31:45 WARN]:        at org.bukkit.command.defaults.ReloadCommand.execute(Rel
oadCommand.java:23)
[15:31:45 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
mmandMap.java:192)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCo
mmand(CraftServer.java:542)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchSe 
rverCommand(CraftServer.java:529)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.aw(Dedic
atedServer.java:286)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
tedServer.java:251)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
aftServer.java:541)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
craftServer.java:453)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
run(SourceFile:617)
[15:37:20 WARN]: Caused by: Traceback (most recent call last):
File "<iostream>", line 13, in <module>
zxJDBC.DatabaseError: driver [org.gjt.mm.mysql.Driver] not found

[15:37:20 WARN]:        at org.python.core.PyException.doRaise(PyException.java:
200)
[15:37:20 WARN]:        at org.python.core.Py.makeException(Py.java:1239)
[15:37:20 WARN]:        at org.python.core.Py.makeException(Py.java:1243)
[15:37:20 WARN]:        at com.ziclix.python.sql.zxJDBC.makeException(zxJDBC.jav
a:328)
[15:37:20 WARN]:        at com.ziclix.python.sql.connect.Connect.__call__(Connec
t.java:78)
[15:37:20 WARN]:        at org.python.core.PyObject.__call__(PyObject.java:441)
[15:37:20 WARN]:        at org.python.core.PyObject.__call__(PyObject.java:447)
[15:37:20 WARN]:        at org.python.pycode._pyx5.f$0(<iostream>:15)
[15:37:20 WARN]:        at org.python.pycode._pyx5.call_function(<iostream>)
[15:37:20 WARN]:        at org.python.core.PyTableCode.call(PyTableCode.java:165
)
[15:37:20 WARN]:        at org.python.core.PyCode.call(PyCode.java:18)
[15:37:20 WARN]:        at org.python.core.Py.runCode(Py.java:1275)
[15:37:20 WARN]:        at org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:235)
[15:37:20 WARN]:        at org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:230)
[15:37:20 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:244)
[15:37:20 WARN]:        ... 16 more
此外,我还尝试了以下代码:

from com.ziclix.python.sql import zxJDBC

d, u, p, v = "jdbc:mysql://host", "root", "pw", "org.gjt.mm.mysql.Driver"
db = zxJDBC.connect(d, u, p, v)
但它导致了这个错误:

[15:31:45 WARN]: org.bukkit.plugin.InvalidPluginException: Traceback (most recen
t call last):
File "<iostream>", line 10, in <module>
zxJDBC.DatabaseError: unable to instantiate datasource

[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:296)
[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:113)
[15:31:45 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:83)
[15:31:45 WARN]:        at org.bukkit.plugin.SimplePluginManager.loadPlugin(Simp
lePluginManager.java:305)
[15:31:45 WARN]:        at com.master.bukkit.python.PythonLoader.onLoad(PythonLo
ader.java:113)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin
s(CraftServer.java:260)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(Cra
ftServer.java:628)
[15:31:45 WARN]:        at org.bukkit.Bukkit.reload(Bukkit.java:279)
[15:31:45 WARN]:        at org.bukkit.command.defaults.ReloadCommand.execute(Rel
oadCommand.java:23)
[15:31:45 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
mmandMap.java:192)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCo
mmand(CraftServer.java:542)
[15:31:45 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchSe 
rverCommand(CraftServer.java:529)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.aw(Dedic
atedServer.java:286)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
tedServer.java:251)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
aftServer.java:541)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
craftServer.java:453)
[15:31:45 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
run(SourceFile:617)
[15:37:20 WARN]: Caused by: Traceback (most recent call last):
File "<iostream>", line 13, in <module>
zxJDBC.DatabaseError: driver [org.gjt.mm.mysql.Driver] not found

[15:37:20 WARN]:        at org.python.core.PyException.doRaise(PyException.java:
200)
[15:37:20 WARN]:        at org.python.core.Py.makeException(Py.java:1239)
[15:37:20 WARN]:        at org.python.core.Py.makeException(Py.java:1243)
[15:37:20 WARN]:        at com.ziclix.python.sql.zxJDBC.makeException(zxJDBC.jav
a:328)
[15:37:20 WARN]:        at com.ziclix.python.sql.connect.Connect.__call__(Connec
t.java:78)
[15:37:20 WARN]:        at org.python.core.PyObject.__call__(PyObject.java:441)
[15:37:20 WARN]:        at org.python.core.PyObject.__call__(PyObject.java:447)
[15:37:20 WARN]:        at org.python.pycode._pyx5.f$0(<iostream>:15)
[15:37:20 WARN]:        at org.python.pycode._pyx5.call_function(<iostream>)
[15:37:20 WARN]:        at org.python.core.PyTableCode.call(PyTableCode.java:165
)
[15:37:20 WARN]:        at org.python.core.PyCode.call(PyCode.java:18)
[15:37:20 WARN]:        at org.python.core.Py.runCode(Py.java:1275)
[15:37:20 WARN]:        at org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:235)
[15:37:20 WARN]:        at org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:230)
[15:37:20 WARN]:        at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:244)
[15:37:20 WARN]:        ... 16 more
[15:37:20警告]:原因:回溯(最近一次呼叫最后一次):
文件“”,第13行,在
zxJDBC.DatabaseError:找不到驱动程序[org.gjt.mm.mysql.driver]
[15:37:20警告]:位于org.python.core.PyException.doRaise(PyException.java:
200)
[15:37:20 WARN]:位于org.python.core.Py.makeException(Py.java:1239)
[15:37:20 WARN]:位于org.python.core.Py.makeException(Py.java:1243)
[15:37:20 WARN]:位于com.ziclix.python.sql.zxJDBC.makeException(zxJDBC.jav)
a:328)
[15:37:20 WARN]:在com.ziclix.python.sql.connect.connect.\uuuu调用(Connec)
t、 爪哇:78)
[15:37:20 WARN]:在org.python.core.PyObject.调用(PyObject.java:441)
[15:37:20 WARN]:在org.python.core.PyObject.调用(PyObject.java:447)
[15:37:20 WARN]:在org.python.pycode.\u pyx5.f$0(:15)
[15:37:20 WARN]:位于org.python.pycode.\u pyx5.call\u function()
[15:37:20 WARN]:位于org.python.core.PyTableCode.call(PyTableCode.java:165
)
[15:37:20 WARN]:位于org.python.core.PyCode.call(PyCode.java:18)
[15:37:20警告]:位于org.python.core.Py.runCode(Py.java:1275)
[15:37:20 WARN]:位于org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:235)
[15:37:20 WARN]:位于org.python.util.PythonInterpreter.execfile(PythonInte
rpreter.java:230)
[15:37:20警告]:位于net.lahwran.bukkit.jython.PythonPluginLoader.loadPlug
in(PythonPluginLoader.java:244)
[15:37:20警告]:。。。还有16个
我实际做了什么(一步一步)?

我从下载了压缩的mysql连接器/J(如已经链接的S.O.问题的答案所示),解压缩,从中复制“mysql-connector-java-3.1.14-bin.jar”,将其粘贴到路径“C:\Users\my_name\Documents\1.7.2twistedjobs\plugins\mysql_jython”。之后,我打开控制面板,单击系统,转到高级系统设置,单击环境变量按钮,添加新的命名类路径(因为没有该名称的变量),并将该路径设置为值“C:\Users\my\u name\Documents\1.7.2twistedjobs\plugins\MySQL\u jython\MySQL-connector-java-3.1.14-bin.jar”,单击确定

注意:由于zxJDBC没有导入错误,这很奇怪,因为它显然成功导入了它,但找不到驱动程序


提前谢谢

您的第二段代码应该可以工作。它在我的机器上工作。您似乎遇到了类路径问题。您可以尝试将MySQL驱动程序jar文件放在extensions目录中,在Windows上您可以在这里找到:

%SystemRoot%\Sun\Java\lib\ext 
然后,驱动程序将可用于所有Java应用程序(如果您需要的话)。有关详细信息,请参见Oracle的文档:

我想提出另外几点。首先,即使驱动程序将使用您给它起的名称,您最终可能希望将其从
org.gjt.mm.mysql.driver
更改为
com.mysql.jdbc.driver
,这是一个现代的重命名版本。(如果您对原因感兴趣,详情如下:)

您的第一段代码将不起作用,因为
org.gjt.mm.mysql
包中没有
MysqlDataSource
类。您引用的类实际上在这里:
com.mysql.jdbc.jdbc2.optional.MysqlDataSource
,但我不知道该代码段是否有效

正如我所说,将MySQL驱动程序jar正确地放在类路径中,它应该可以工作。有关类路径设置的Oracle文档如下:

祝你好运