查询数据库时,我可以毫无问题地打印结果集。我需要使用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 :(得分:0)
你做不到。您的超级对您的子类中的数据一无所知,除非您格式化的数据位于您的父级中,并设置在子级中。
但是,由于您的代码显示的是一个String对象被创建为局部变量,因此您的超级服务器无法知道有关此变量的任何信息。
toString的目的是输出该对象的表示,这通常表示该对象的属性。
答案 1 :(得分:0)
你总是可以从你的班级调用super.foo()。这会调用超类方法。显然,如果你在课外做,你就不能选择你调用的foo()实现。在这种情况下,您总是调用“最后”覆盖的版本。这称为多态。
答案 2 :(得分: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();
}
}