尝试进行家庭作业,包括使用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文件试图打开一个已经打开的连接,但是只是更改了我的实例无所事事。