2010-12-19 59 views
0

查询我的数据库时,可以毫无问题地打印我的结果集。我需要使用它在我的超类中重写super.toString调用方法给我我想要显示在结果集的格式。Java - 调用super.toString()来格式化结果集

res = stmt.executeQuery("Select * from registrar.student "); 
System.out.println("\nAll records in your table:"); 
while (res.next()) { 
    String data = ""; 
    data += res.getString("studentID") + " " 
      + res.getString("firstName") + " " 
      + res.getString("lastName") + " " 
      + res.getDouble("GPA")+ " " 
      + res.getString("status") + " " 
      + res.getString("mentor") +" " 
      + res.getString("level")+"\n"; 
    System.out.println(data); 

我如何添加super.toString()来格式化数据的显示?

回答

0

你不能。除非您的格式化数据位于您的父级,并且设置在子级中,否则您的超级用户对您的子级中的数据一无所知。

但是,由于您的代码显示一个String对象被创建为局部变量,所以您的超级用户无法知道有关此变量的任何信息。

toString的用途是输出该对象的表示形式,通常表示该对象的属性。

0

您可以随时从您的班级调用super.foo()。这调用了超类方法。显然,如果你在课堂外进行,你不能选择你所称的foo()的实现。在这种情况下,您总是调用“最后”覆盖版本。这被称为多态性。

0

我已经试过这

public static void printRecord(ResultSet rs) 
    { 
     try { 
      ResultSetMetaData rsmd=rs.getMetaData(); 

      int totalColumns=rsmd.getColumnCount(); 

      StringBuilder sb=new StringBuilder(); 
      String columnName=null; 

      sb.append("[ "); 
      for(int i=1;i<=totalColumns;i++) 
      { 
       columnName=rsmd.getColumnName(i); 

       sb.append(columnName); 
       sb.append(":"); 
       sb.append(rs.getString(i)); 

       if(i!=(totalColumns-1)) 
       { 
        sb.append(" , "); 
       } 
      } 
      sb.append(" ]"); 

      System.out.println(sb.toString()); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    } 
+0

感谢您的答复。你们都在说我的头。我的变量在Super类中定义,并由除数据之外的子类继承。 – ConfusedJavaNewbie1008 2010-12-19 17:12:40

+0

只需传递结果集 – 2010-12-19 18:49:26