使用 Python 到 Java 连接 BigSQL
Connect BigSQL using Python through Java
我正在尝试将 python 连接到 BigSQL.I 有一个 java 代码可以将 python 连接到 BigSQL 并从 BigSQL.Below 检索数据是我的示例代码
public class Hello {
public static void main(String[] args) {
try(Connection con = DriverManager.getConnection("connection details")) {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Statement stmt = con.createStatement();
System.out.println("Connected to BigSQL");
ResultSet result = stmt.executeQuery("select * from table limit 10");
while (result.next()) {
//Retrieve by com_name
String com_name = result.getString(1);
//Retrieve by family
String family = result.getString(2);
//Retrieve by sci_name
String sci_name = result.getString(3);
//Retrieve by symbol
String symbol = result.getString(4);
//Retrieve by synonym
String synonym = result.getString(5);
System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我写了一个 python 代码来使用我的 python
调用这个 java 代码
import os
import os.path,subprocess
from subprocess import STDOUT,PIPE
path='Location where my .java file is'
os.chdir(path)
def compile_java(java_file):
subprocess.check_call(['javac', java_file])
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
compile_java('Hello.java')
execute_java("Hello")
我的 python 代码成功 运行 但我无法检索
中提到的 java 输出
System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
你能帮帮我吗?
提前致谢
您需要执行对 java 的调用并使用 check_output
获取 java 输出。 check_call
只是 returns 返回码:
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
print(cmd)
javaStdout =subprocess.check_output(['java', java_class])
print ('>>', javaStdout)
execute_java("HelloWorld")
returns:
['java', 'HelloWorld']
>> b'Hello World!\n'
我正在尝试将 python 连接到 BigSQL.I 有一个 java 代码可以将 python 连接到 BigSQL 并从 BigSQL.Below 检索数据是我的示例代码
public class Hello {
public static void main(String[] args) {
try(Connection con = DriverManager.getConnection("connection details")) {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Statement stmt = con.createStatement();
System.out.println("Connected to BigSQL");
ResultSet result = stmt.executeQuery("select * from table limit 10");
while (result.next()) {
//Retrieve by com_name
String com_name = result.getString(1);
//Retrieve by family
String family = result.getString(2);
//Retrieve by sci_name
String sci_name = result.getString(3);
//Retrieve by symbol
String symbol = result.getString(4);
//Retrieve by synonym
String synonym = result.getString(5);
System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我写了一个 python 代码来使用我的 python
调用这个 java 代码import os
import os.path,subprocess
from subprocess import STDOUT,PIPE
path='Location where my .java file is'
os.chdir(path)
def compile_java(java_file):
subprocess.check_call(['javac', java_file])
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
compile_java('Hello.java')
execute_java("Hello")
我的 python 代码成功 运行 但我无法检索
中提到的 java 输出System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
你能帮帮我吗?
提前致谢
您需要执行对 java 的调用并使用 check_output
获取 java 输出。 check_call
只是 returns 返回码:
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
print(cmd)
javaStdout =subprocess.check_output(['java', java_class])
print ('>>', javaStdout)
execute_java("HelloWorld")
returns:
['java', 'HelloWorld']
>> b'Hello World!\n'