项目实战---数据库提取数据并展示在JSP

设备单表查询:

在jsp页面开头写上所要用的标签库

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

在body内写上链接所需数据,包括数据库连接所需的JDBC(MYSQL8.0和5.0有不一样的jar包和不一样的写法,此处是MYSQL8.0)还有账号和密码

<sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver"
			url="jdbc:mysql://localhost:3306/equipmentmgr?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
			user="root" password="123456" />

采用sql标签取出对应数据:

  <sql:query dataSource="${snapshot}" var="result">
                     SELECT  distinct BUILD FROM `d_area`
                    </sql:query>

因为区域信息中有重复的楼,所以说需要获取distinct buid
在这里插入图片描述
在这里插入图片描述
然后foreach循环:

 <c:forEach var="row" items="${result.rows}">
					    <li class="layui"><c:out value="${row.build}"/>号楼 </li>
					    </c:forEach>						

就可以展示楼号
同理对应的全部信息是依靠来显示

 <div class="layui-tab-content">
						    <div class="layui-tab-item layui-show">
						    	  <div class="table-responsive">
								 		  <table class="layui-table" lay-skin="line" lay-size="lg" id="table">						  
											  <thead>
											    <tr>
											     <th>楼号</th>											      
											      <th>层数</th>
											  	  <th>操作</th>					      											      
											    </tr> 
											  </thead>
											  <tbody>
											  
											   <sql:query dataSource="${snapshot}" var="result2">
                                             SELECT  * FROM `d_area`
                                              </sql:query>
                                              <c:forEach var="row" items="${result2.rows}">
											    <tr>	
											    <td><c:out value="${row.build}"/></td>										    											      
											      <td><c:out value="${row.floor}"/></td>	
											      		<td>
						      	                    <div class="layui-table-cell laytable-cell-1-0-10"> 							      	  	 
							      	  	             <a class="layui-btn layui-btn-normal layui-btn-xs">修改</a> 
							      	  	             <a class="layui-btn layui-btn-danger layui-btn-xs delete">删除</a> 
						      	                    </div>
						                          </td>					     
											    </tr>
											     </c:forEach>
											     
											  </tbody>
										</table>
								 	</div>					                   
					         
						    </div>

最后是根据不同楼号来显示不同层数信息

 <c:forEach var="row1" items="${result.rows}">
							 <!-- 首先获得楼号数据 -->
							 <sql:query dataSource="${snapshot}" var="result3">
                                 SELECT   FLOOR FROM `d_area` where BUILD=${row1.build}
                             </sql:query>
                             <!-- 在获取对应楼号的楼层信息 -->
                
						      <div class="layui-tab-item">
						    	<div class="table-responsive">
								 		  <table class="layui-table" lay-skin="line" lay-size="lg" id="table">						  
											  <thead>
											   <tr>
											     <th>楼号</th>											      
											      <th>层数</th>
											  	  <th>操作</th>					      											      
											    </tr> 
											  </thead>
											  <tbody>
											  <c:forEach var="row2" items="${result3.rows}">
											    <tr>	
											    <td><c:out value="${row1.build}"/>号楼</td>										    											      
											      <td><c:out value="${row2.floor}"/></td>	
											      	
											      	<td>
						      	                    <div class="layui-table-cell laytable-cell-1-0-10"> 							      	  	 
							      	  	             <a class="layui-btn layui-btn-normal layui-btn-xs">修改</a> 
							      	  	             <a class="layui-btn layui-btn-danger layui-btn-xs delete">删除</a> 
						      	                    </div>
						                            
						                            </td>					     
											    </tr>
											     </c:forEach>
											  </tbody>
										</table>
								 	</div>					                   
					          
						    </div>
					          </c:forEach>
					               <!-- foreach内循环foreach -->

在这里插入图片描述
在这里插入图片描述

用户多表查询:

预期结果:有两个表

在这里插入图片描述

在这里插入图片描述

有两个表role和user,user的user_role属性和role id相连接
期待结果是获取到所有role type=2的user name

  <sql:query dataSource="${snapshot}" var="role">
                     SELECT  *  FROM `d_role` where TYPE='2'
            </sql:query>
          
            	   <div class="layui-tab layui-tab-card">
					  <ul class="layui-tab-title">
					    <li class="layui-this">全部</li>
					    <c:forEach var="fix" items="${role.rows}">
					    
					     <sql:query dataSource="${snapshot}" var="user">
                              SELECT  * FROM `d_user` where USER_ROLE=${fix.ID}
                         </sql:query>
					   	 <c:forEach var="fixman" items="${user.rows}">
					   	  <li class="layui"><c:out value="${fixman.nickname}"/> </li>
					   	 </c:forEach>>
						</c:forEach>
 

在这里插入图片描述
效果

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值