java - 如何使用select关键字显示oracle数据库中的记录

标签 java sql jdbc oracle-xe

我想使用 select 关键字在 Java 中显示 Oracle 数据库中的记录,但它不起作用。当我运行该程序时,它显示 SQL 命令,但不是我想要的结果。

我的代码是这样的:

static void modify()
{
  System.out.println("Enter employee ID");
  empid=sc.nextInt();
  try{
       con=Connection1.getConnection();
       stmt=con.createStatement();
       String d="select * from emp where empid='"+empid+"'";
       rs=stmt.executeQuery(d);
       System.out.println(""+d); 
   }
    catch(SQLException e)
  {
    e.printStackTrace();
  }       
}

当我运行应用程序时,将显示此结果而不是数据库中的记录:

select * from emp where empid='14'

最佳答案

问题是您只是打印结果的名称而不是结果本身。

我已将您的代码更改如下,

  static void modify()
    {
    System.out.println("Enter employee ID");
        empid=sc.nextInt();
       try{
            con=Connection1.getConnection();
            stmt=con.createStatement();
            String d="select * from emp where empid='"+empid+"'";
            rs=stmt.executeQuery(d);

    while(rs.next()){

     //Getting column value from record by giving column no 
                System.out.println(rs.getString(1)); //line 1
    //Getting column value from record by giving column name,
                System.out.println(rs.getString("empid"));// line 2
    }
       }
       catch(SQLException e)
       {
           e.printStackTrace();
       }

    }

请注意,上面的代码(第1行)将打印每条记录的第一列(从数据库返回),这里不保证返回列的顺序.

如果您想获取特定列,则可以在 resultSet 的 getString 方法中指定列名称作为参数(第 2 行)

您必须使用适当的方法来获取值,例如,如果数据库中第 2 列的数据类型为 INTEGER,则必须使用 rs.getInt(2)

在您的代码中,

 System.out.println(""+rs);

在Java中,当您在System.out中调用println(Object)方法时,该方法将调用String.valueOf(Object)方法,该方法将再次调用toString()方法,该方法将返回对象的字符串表示形式,这里什么也没有而是您传递的查询,而不是记录。

关于java - 如何使用select关键字显示oracle数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30944708/

相关文章:

mysql - 在同一个表上使用不同的 group By 子句连接 2 个查询的结果

mysql - 如何使用MySQL表中的数字选择一些行?

MySQL 5.7 基于不同的列返回表的所有列

java - JavaScript 和 Java 中的日期格式

java - 为什么类中的静态方法在其对象为空时不会给出空指针异常

Java JAMA 不兼容无法转换错误

java - 缺少 tools.jar 文件

Android 上的 java.lang.ClassNotFoundException : net. sourceforge.jtds.jdbc.Driver

java - executeUpdate 异常

linux - oracle 瘦 jdbc 连接在不活动后接收 "connection reset"