表列标题在JDBC中不正确

时间:2016-03-08 18:08:10

标签: java mysql jdbc columnheader

我已经使用eclipse ide声明了mysql与java的连接并添加了一些记录,但结果不正确。 当我显示表的列表时,表字段没有显示,这里我得到了数据库名称。

enter image description here

out.println("<body><tt><table border=1 width=90%><tr>");

try {

    ResultSet rs = com.db.Admin.getData();
    ResultSetMetaData mdata = rs.getMetaData();
    int NOC = mdata.getColumnCount();

    for (int i = 1; i <= NOC; i++) {
        out.println("<th>" + mdata.getCatalogName(i));

    }

    while (rs.next()) {
        out.println("<tr>");
        for (int i = 1; i <= NOC; i++)
            out.print("<td>" + rs.getString(i));
        out.println("</tr>");
    }

} catch (Exception e) {
    // TODO: handle exception
    out.print(e.toString());
}

2 个答案:

答案 0 :(得分:2)

来自the javadoc

  

获取指定列的表的目录名称。

您可能需要getColumnLabel()

  

获取指定列的建议标题,以便在打印输出和显示中使用。建议的标题通常由SQL AS子句指定。如果未指定SQL AS,则从getColumnLabel返回的值将与getColumnName方法返回的值相同。

阅读文档时,一切都变得简单。

答案 1 :(得分:0)

你的while循环看起来像这样。您错过了添加</td>

    while (rs.next()) {
        out.println("<tr>");
        for (int i = 1; i <= NOC; i++)
            out.print("<td>" + rs.getString(i));
            out.print("</td>"); // You have missed to add it
        out.println("</tr>");
    }