首页 > 解决方案 > 使用java查询数据库时控制台没有输出

问题描述

尝试做一个家庭作业,包括使用 jdbc 将 java 连接到 Oracle SQLdeveloper,然后返回一些选择语句以开始。我已经建立了数据库并将 AUTHORS 表添加到我的数据库中。当我使用“select * from authors;”在 sqldeveloper 中查询时,我得到了正确的结果:

 AUTHORID FIRSTNAME            LASTNAME                     
  ---------- -------------------- ------------------------------
     1 Paul                 Deitel                        
     2 Harvey               Deitel                        
     3 Abbey                Deitel                        
     4 Dan                  Quirk                         
     5 Michael              Morgano                       

我的java类是这样的:

import java.sql.*;
import java.util.Scanner;

public class Example {

public static void main(String args[]) throws 
ClassNotFoundException {

    try {
    String dbUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
    String user = "SYSTEM";
    String pass = "myvalidpassword";

    Connection c = DriverManager.getConnection(dbUrl, user, pass);
    if (c != null)
    {
        System.out.println("You're in your database now");
    }
    else {
        System.out.println("Failed to make connection");
    }

    System.out.println("Starting queries..");
    Statement myStmt = c.createStatement();

    ResultSet rset = myStmt.executeQuery("select * from authors");
    System.out.println(rset);
    ResultSetMetaData metaData = rset.getMetaData();
    int numberOfColumns = metaData.getColumnCount();
    System.out.println(metaData);
    System.out.println(numberOfColumns);

    if (rset.next()) {
        for (int i= 1; i <= numberOfColumns; i++) {
            System.out.print(metaData.getColumnLabel(i) + "\t");
        }
      }
    }

    catch (SQLException e) {
        e.printStackTrace();
    }
    }
}

我输入了很多打印语句以确保它确实连接到数据库。这些打印语句确实通过控制台:

You're in your database now
Starting queries..
oracle.jdbc.driver.ForwardOnlyResultSet@46d59067
oracle.jdbc.driver.OracleResultSetMetaData@14bdbc74
3

因此,控制台正确地看到有三列,但结果集返回了奇怪的符号和数字。我期待它回来时提供有关该表的详细信息。我已经用谷歌搜索并且似乎找不到答案,我还尝试通过转到命令行中的 SQL > 提示符并关闭我的实例来断开我的实例,以防我的 java 文件试图打开一个已经打开的连接,但这只是改变了我的实例空闲。

标签: javajdbcoracle-sqldeveloperoracle12c

解决方案


推荐阅读