通过sql语句查询表的列和对应的数据并在jsp页面上显示

来源:互联网 发布:打鼓谱软件 编辑:程序博客网 时间:2024/05/16 00:30
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="UTF-8"%><%@   taglib    uri="http://java.sun.com/jsp/jstl/core"    prefix="c" %>    <%@  taglib    uri="http://java.sun.com/jsp/jstl/sql"    prefix="sql" %><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>动态列</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">   </head><body><form action=""><textarea name=sql cols=80 rows=10>${param.sql}</textarea><br><input type=submit value=查询></form><c:if test="${!empty param.sql}">   <%Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XFSM", "xfsm", "merit");Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(request.getParameter("sql"));if(rs == null) {stmt.close();conn.close();return;}// 取列名ResultSetMetaData meta = rs.getMetaData();int cols = meta.getColumnCount();ArrayList colNames = new ArrayList();for(int i = 1; i <= cols; i++) {colNames.add(meta.getColumnLabel(i));}request.setAttribute("colNames", colNames);%><table border="1"  cellpadding="0" style="border-collapse: collapse; "  width="100%" bordercolor="#000000" align=center ><tr><c:forEach items="${colNames}" var="c"><td>${c}</td></c:forEach></tr><%while(rs.next()) {colNames.clear();for(int i = 1; i <= cols; i++) {Object value = rs.getObject(i);colNames.add(value);}request.setAttribute("colNames", colNames);%><tr><c:forEach items="${colNames}" var="c"><td>${c}</td></c:forEach></tr><%}rs.close();stmt.close();conn.close();%></table></c:if></body></html>

显示效果如图:


原创粉丝点击