Jython zxJDBC cursor.tables()始终不返回任何值

Jython zxJDBC cursor.tables()始终不返回任何值,jdbc,jython,Jdbc,Jython,我正在使用Jython2.2.1和MySQL连接器/J5.1访问MySQL数据库。我想使用zxJDBC的cursor.tables()方法来检索该数据库中的表列表。但是,此方法始终不返回任何值 根据zxJDBC文档,cursor.tables()与Java的DatabaseMetaData.getTables()相同。当我从Jython调用这个Java方法时,它可以正常工作,但是使用zxJDBC包对我来说不起作用。以下是我尝试过的: import java.sql.*; public clas

我正在使用Jython2.2.1和MySQL连接器/J5.1访问MySQL数据库。我想使用zxJDBC的cursor.tables()方法来检索该数据库中的表列表。但是,此方法始终不返回任何值

根据zxJDBC文档,cursor.tables()与Java的DatabaseMetaData.getTables()相同。当我从Jython调用这个Java方法时,它可以正常工作,但是使用zxJDBC包对我来说不起作用。以下是我尝试过的:

import java.sql.*;

public class TableTest {
    public static void tables(String url) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection(url, "root", null);
            DatabaseMetaData meta = conn.getMetaData();
            ResultSet rs = meta.getTables(null, null, "%",
                                          new String[] {"TABLE"});
            while (rs.next()) {
                System.out.println(rs.getString("TABLE_NAME"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
当我从Jython打来电话时,一切都很好

from com.ziclix.python.sql import zxJDBC
import TableTest

url = 'jdbc:mysql://localhost/jythontest'

print 'Java:'
TableTest.tables(url);

print 'Python:'
conn = zxJDBC.connect(url, 'root', None, 'com.mysql.jdbc.Driver')
cursor = conn.cursor()
print cursor.tables(None, None, '%', ('TABLE',))
在我的测试数据库中有两个表,分别称为“table_a”和“table_b”。输出为:

Java:
table_a
table_b
Python:
None
我曾在Linux和MacOS上尝试过这种方法,但效果相同。在我试图找出zxJDBC的错误之前,我想知道我使用这个包的方式是否有任何错误


谢谢。

在游标.tables()之后尝试打印游标.fetchall()

(使用Informix和jython 2.5测试版进行测试)

我假设:

  • cursor.tables()在中执行查询 蟒蛇
  • cursor.fetchall()返回 结果
from com.ziclix.python.sql import zxJDBC
import TableTest

url = 'jdbc:mysql://localhost/jythontest'

print 'Java:'
TableTest.tables(url);

print 'Python:'
conn = zxJDBC.connect(url, 'root', None, 'com.mysql.jdbc.Driver')
cursor = conn.cursor()
print cursor.tables(None, None, '%', ('TABLE',))
print cursor.fetchall()