java - 无法在控制台输出中打印 SQL 语句

标签 java jdbc

任何人都可以建议我在这里做错了什么,尝试在控制台中打印 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/

相关文章:

关于创建新局部变量以引用类成员变量的 Java 编码风格

java - 使用 jdbc 执行 sql 文件并将日志写入文件而不是 std 输出或仅打印错误

java - Android UI 在 JDBC 连接上挂起 - 即使连接在另一个线程上

scala - 如何使用 doobie 连接到 Hive

Java executeQuery 返回空值

java - Tomcat/SQL Server/Spring - 当 setStructured 参数由 JNDI 配置引起时,使用 SQLServerCallableStatement 抛出异常

java - Maven:使用指定主类和属性文件的 shade-plugin 编译项目

java - Spring MVC : Right place to talk to database

java - java中main()方法处理垃圾收集的方式是否不同

java - UCanAccess异常: cannot getMetaData from ResultSet (invalid cursor state)