【发布时间】:2020-09-28 00:08:40
【问题描述】:
我知道这个问题可能会以多种不同的方式提出,但我有点卡在无法将列名与记录一起显示的代码中。我正在显示记录,但没有显示列名。任何帮助表示赞赏,到目前为止我的代码如下 -
resultSet = statement.executeQuery(sql);
ResultSetMetaData metadata = resultSet.getMetaData();
int count = metadata.getColumnCount();
while(resultSet.next())
{
%>
<tr>
<%
ArrayList<String> columns = new ArrayList<>();
for(int i=1; i<=count;i++)
{
String name = metadata.getColumnName(i);
columns.add(name);
%>
<td>
<%= resultSet.getString(i)%>
</td>
<%
}
%>
</tr>
<%
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</table>
</body>
</html>
带有@swati 建议的修改代码。我在尝试之前添加了表格,并在尝试中包含了数组和 for 循环。这是抛出语法和构造函数错误
<table style="width:100%;text-align:left;border-collapse:collapse;background-color:gold;" border="2" bordercolor="Blue">
<tr style="background-color:yellowgreen;color:white;">
</tr>
<%
try{
Connection connection = null;
ResultSet resultSet = null;
int counter=1;
Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection("jdbc:oracle:thin:@DEV:1521:DEV","DEV","DEV");
Statement statement = connection.createStatement();
String sql = ("SELECT * FROM tblnm");
resultSet = statement.executeQuery(sql);
ResultSetMetaData metadata = resultSet.getMetaData();
int count = metadata.getColumnCount();
ArrayList<String> columns = new ArrayList<>();
<table>
<tr> //row for displaying column names
<%for(int i=1; i<=count;i++)
{
String name = metadata.getColumnName(i);
columns.add(name);
%>
<td><%=name%></td> //displaying column name
<% } %>
</tr>
<%
while(resultSet.next())
{
%>
<tr>
//looping through names
<% for(int i=1;i<columns.size();i++) { %>
//get values from particular columns
<td><%= resultSet.getString(columns.get(i))%></td>
<% } %> //closing for loop
</tr>
<%
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</table>
</body>
</html>
【问题讨论】: