我尝试使用 py4j 提到的从 Python 连接和测试 JDBC 驱动程序
from py4j.JavaGateway import java_gateway
# Open JVM interface with the JDBC Jar
jdbc_jar_path = 'C:\Program Files\CData\CData JDBC Driver for MongoDB 2019\lib\cdata.jdbc.mongodb.jar'
gateway = java_gateway(classpath=jdbc_jar_path)
# Load the JDBC Jar
jdbc_class = "cdata.jdbc.mongodb.MongoDBDriver"
gateway.jvm.class.forName(jdbc_class)
# Initiate connection
jdbc_uri = "jdbc:mongodb:Server=127.0.0.1;Port=27017;Database=EmployeeDB;"
con = gateway.jvm.DriverManager.getConnection(jdbc_uri)
# Run a query
sql = "select * from Employees"
stmt = con.createStatement(sql)
rs = stmt.executeQuery()
while rs.next():
rs.getInt(1)
rs.getFloat(2)
.
.
rs.close()
stmt.close()
出现错误为
File "assignment.py", line 9
gateway.jvm.class.forName(jdbc_class)
^
SyntaxError: invalid syntax
尝试更换
gateway.jvm.class.forName(jdbc_class)
与
gateway.jvm.Class.forName(jdbc_class)
(即将
c
中的 class
大写。)
Class.forName
是您要在此处调用的 Java 方法。 (还要注意D
中的DriverManager
在gateway.jvm.DriverManager.getConnection(...)
中是大写的。)但是,由于class
是Python关键字,因此导致语法错误。您不能拥有名为 class
的局部变量、函数或方法。