我使用Jython2.5.0,mysql-connector-java-5.0.8-bin.jar,因为我的服务器是Mysql5.0.38 我的Jython应用程序中存在问题。
两个功能:
def act_query(query):
connection = conn //conn is global and has been assigned when called
cursor = connection.cursor()
num_affected_rows = cursor.execute(query)
cursor.close()
connection.commit()
return num_affected_rows
def get_row(query):
connection = conn
cursor = connection.cursor()
cursor.execute(query)
row = cursor.fetchone()
cursor.close()
return row
然后我做这样的事情:
query = """SELECT count(*) from test_db.test_table1 into @max"""
act_query(query)
get_query= """ select @max """
row = get_row(get_query)
print row
输出类似于:array('b', [49, 52, 54, 50, 56, 48, 52])
我试着找到原因,然后进行测试:
test_query = """select count(*) from test_db.test_table1"""
row = get_row(test_query)
print row
输出是正确的答案
实际上这是CPython中的一个脚本,首先使用MySQLdb,然后用zxJDBC将其转换为Jython 它在CPython中运作良好但现在无法正常工作 在CPython中,光标可以定义为
cursor = connection.cursor(MySQLdb.cursors.DictCursor)
但是在zxJDBC中似乎没有选择创建游标
这是什么原因?
请告诉我方式。谢谢!
答案 0 :(得分:1)
我从jython mailist那里得到了答案。 JDBC获取的会话变量是varbinary类型。 zxJDBC使它成为一个数组。可以通过str(byte [])将数组转换为int来获得正确的输出。