使用Java查询数据库

时间:2018-12-15 03:46:40

标签: java jdbc oracle-sqldeveloper oracle12c

尝试进行家庭作业,包括使用jdbc将Java连接到Oracle SQLdeveloper,然后返回一些select语句以开始。我已经建立数据库并将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文件试图打开一个已经打开的连接,但是只是更改了我的实例无所事事。

0 个答案:

没有答案