任何人都可以建议我在这里做错了什么,尝试在控制台中打印 SQL 查询输出:
import java.io.*;
import java.sql.*;
public class RetrieveFile {
public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@123.34.54.100:35120/test1", "user1", "*****");
PreparedStatement ps=con.prepareStatement("select APPLY from MSG where MID='1234'");
ResultSet rs=ps.executeQuery();
rs.next();//now on 1st row
con.close();
System.out.println("success" + rs);
}catch (Exception e) {e.printStackTrace(); }
}
}
实际 react :- successoracle.jdbc.driver.OracleResultSetImpl@66d33a
预期响应:- 现在成功(应检索哪个 SQL 查询)
最佳答案
您的问题是,您的 ResultSet
实现似乎没有覆盖 public String toString()
方法。因此,使用父类 (Object
) 的默认实现。默认实现会打印类的名称(在示例中为 oracle.jdbc.driver.OracleResultSetImpl
)和对象的哈希码 66d33a
。
而是迭代结果集并逐行打印每个条目:
while(rs.next()) {
for (int column = 1; column <= numberOfColumns; column++) {
if(column > 1) System.out.print(", ");
System.out.print(rs.getString(column));
}
}
关于java - 无法在控制台输出中打印 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168415/