如何在Python中编译jdbc连接的测试?

问题描述 投票:0回答:1

我尝试使用 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
python-3.x jdbc compiler-errors cdata py4j
1个回答
0
投票

尝试更换

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
的局部变量、函数或方法。

© www.soinside.com 2019 - 2024. All rights reserved.