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

<%@ 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>

显示效果如图:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在jsp页面中引入Java数据库连接(JDBC)的jar包。然后,你需要编写Java代码来连接虚拟机数据库,并使用select语句查询整张数据。最后,你需要将查询结果以格的形式展示在jsp页面中。 以下是示例代码,可以帮助你实现这个功能: ```java <%@ page import="java.sql.*" %> <% // 定义数据库连接参数 String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/db_name"; String username = "username"; String password = "password"; // 加载数据库驱动 Class.forName(driver); // 创建数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建查询语句 String sql = "SELECT * FROM table_name"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 输出查询结果 out.println("<table>"); out.println("<tr><th>1</th><th>2</th><th>3</th></tr>"); while(rs.next()) { out.println("<tr>"); out.println("<td>" + rs.getString("column1") + "</td>"); out.println("<td>" + rs.getString("column2") + "</td>"); out.println("<td>" + rs.getString("column3") + "</td>"); out.println("</tr>"); } out.println("</table>"); // 关闭数据库连接 rs.close(); stmt.close(); conn.close(); %> ``` 在上面的代码中,你需要替换以下参数: - db_name:虚拟机数据库的名称 - username:连接虚拟机数据库时使用的用户名 - password:连接虚拟机数据库时使用的密码 - table_name:要查询格名称 - 1、2、3:要查询名称 你可以将这段代码复制到你的jsp页面中,并根据自己的需要进行修改。注意,为了安全起见,你应该使用预编译语句(Prepared Statement)来执行SQL查询,而不是直接将用户输入的内容传递给SQL查询

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值