日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

springJDBC一对多关系,以及Java递归,jsp递归的实现

發布時間:2024/7/19 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springJDBC一对多关系,以及Java递归,jsp递归的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

maven編譯,springMVC+spring+springJDBC框架。

要實現的功能是一個文件夾下,可能顯示n個文件夾,每個文件夾下又可能顯示n個文件夾。。。。

前臺效果:

controller中的方法如下:

@RequestMapping(value="/index",method=RequestMethod.GET)
?? ?public String getIndex(HttpServletRequest request,@RequestParam(required=false) Integer isHidden){
?? ??? ?if(isHidden==null) isHidden = 1;//1 showHidden
?? ??? ?request.setAttribute("list", cwInfoService.getAllCwInfo(isHidden));
?? ??? ?return "/jsp/coursewareSelectAll";
?? ?}

pojo類如下:

package org.sakaiproject.courseware.pojo;

import java.util.Date;
import java.util.List;

/**
?* 描述:課件信息
?* @author Promise
?* Date:2015-08-04
?*/
public class CwInfo {
?? ?/**主鍵*/
?? ?private Integer cwId;
?? ?/**課件名稱*/
?? ?private String cwName;
?? ?/**課件路徑*/
?? ?private String cwPath;
?? ?/**創建人*/
?? ?private String createUser;
?? ?/**創建時間*/
?? ?private Date createTime;
?? ?/**修改時間*/
?? ?private Date updateTime;
?? ?/**修改人*/
?? ?private String updateUser;
?? ?/**父級編號*/
?? ?private Integer parentId;
?? ?/**工具編號*/
?? ?private String toolId;
?? ?/**課件描述*/
?? ?private String cwContent;
?? ?/**是否隱藏? 0隱藏? 1顯示*/
?? ?private Integer isHidden;
?? ?/**包含有cwinfo對象的集合*/
?? ?private List<CwInfo> cwInfo;??????????????????????????? //重點是我添加了一個屬性,用于存放子課件信息的parentId等于父課件信息的cwId用的集合
?? ?public List<CwInfo> getCwInfo() {
?? ??? ?return cwInfo;
?? ?}
?? ?public void setCwInfo(List<CwInfo> cwInfo) {
?? ??? ?this.cwInfo = cwInfo;
?? ?}
?? ?public Integer getIsHidden() {
?? ??? ?return isHidden;
?? ?}
?? ?public void setIsHidden(Integer isHidden) {
?? ??? ?this.isHidden = isHidden;
?? ?}
?? ?public Integer getCwId() {
?? ??? ?return cwId;
?? ?}
?? ?public void setCwId(Integer cwId) {
?? ??? ?this.cwId = cwId;
?? ?}
?? ?public String getCwName() {
?? ??? ?return cwName;
?? ?}
?? ?public void setCwName(String cwName) {
?? ??? ?this.cwName = cwName;
?? ?}
?? ?public String getCwPath() {
?? ??? ?return cwPath;
?? ?}
?? ?public void setCwPath(String cwPath) {
?? ??? ?this.cwPath = cwPath;
?? ?}
?? ?public String getCreateUser() {
?? ??? ?return createUser;
?? ?}
?? ?public void setCreateUser(String createUser) {
?? ??? ?this.createUser = createUser;
?? ?}
?? ?public Date getCreateTime() {
?? ??? ?return createTime;
?? ?}
?? ?public void setCreateTime(Date createTime) {
?? ??? ?this.createTime = createTime;
?? ?}
?? ?public Date getUpdateTime() {
?? ??? ?return updateTime;
?? ?}
?? ?public void setUpdateTime(Date updateTime) {
?? ??? ?this.updateTime = updateTime;
?? ?}
?? ?public String getUpdateUser() {
?? ??? ?return updateUser;
?? ?}
?? ?public void setUpdateUser(String updateUser) {
?? ??? ?this.updateUser = updateUser;
?? ?}
?? ?public Integer getParentId() {
?? ??? ?return parentId;
?? ?}
?? ?public void setParentId(Integer parentId) {
?? ??? ?this.parentId = parentId;
?? ?}
?? ?public String getToolId() {
?? ??? ?return toolId;
?? ?}
?? ?public void setToolId(String toolId) {
?? ??? ?this.toolId = toolId;
?? ?}
?? ?public String getCwContent() {
?? ??? ?return cwContent;
?? ?}
?? ?public void setCwContent(String cwContent) {
?? ??? ?this.cwContent = cwContent;
?? ?}
}

dao中,我用springJDBC操作數據庫如下:

package org.sakaiproject.courseware.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.sakaiproject.courseware.dao.CwInfoDao;
import org.sakaiproject.courseware.pojo.CwInfo;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@Repository
public class CwInfoDaoImpl implements CwInfoDao {
?? ?
?? ?@Resource(name="jdbcTemplate")
?? ?private JdbcTemplate jdbcTemplate;

??? @SuppressWarnings("unchecked")
?? ?public List<CwInfo> findCwInfo(Integer cwId,Integer isHidden){
?? ??? ?String sql = "select * from cw_info where parent_id="+cwId;
?? ??? ?if(isHidden==1) sql=sql+" and is_hidden="+isHidden;
?? ??? ?List<CwInfo> list = jdbcTemplate.query(sql, new cwMapper());
?? ??? ?for (int i = 0; i < list.size(); i++) {
?? ??? ??? ?List<CwInfo> cwList = this.findCwInfo(list.get(i).getCwId(),isHidden);????????????????????????????????? //這里實現了查詢的遞歸方法
?? ??? ??? ?list.get(i).setCwInfo(cwList);
?? ??? ?}
?? ??? ?return list;
?? ?}
?? ?@Override
?? ?@SuppressWarnings("unchecked")
?? ?public List<CwInfo> getAllCwInfo(Integer isHidden){
?? ??? ?String sql = "select * from cw_info where parent_id=0";
?? ??? ?if(isHidden==1) sql=sql+" and is_hidden="+isHidden;
?? ??? ?List<CwInfo> countList = jdbcTemplate.query(sql,new cwMapper());
?? ??? ?for (int i = 0; i < countList.size(); i++) {
?? ??? ??? ?List<CwInfo> cwList = this.findCwInfo(countList.get(i).getCwId(),isHidden);
?? ??? ??? ?countList.get(i).setCwInfo(cwList);
?? ??? ?}
?? ??? ?return countList;
?? ?}

?

class cwMapper implements RowMapper { ???????????????????????????????????????????????????????????????????????? //springJDBC要實現的類,查詢用的
?? ? ?
?? ?@Override
?? ?public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
?? ??? ?? CwInfo cw = new CwInfo(); ?
?? ??? ?? cw.setCreateTime(rs.getDate("create_time"));
?? ??? ?? cw.setCreateUser(rs.getString("create_user"));
?? ??? ?? cw.setCwContent(rs.getString("cw_content"));
?? ??? ?? cw.setCwId(rs.getInt("cw_id"));
?? ??? ?? cw.setCwName(rs.getString("cw_name"));
?? ??? ?? cw.setCwPath(rs.getString("cw_path"));
?? ??? ?? cw.setParentId(rs.getInt("parent_id"));
?? ??? ?? cw.setToolId(rs.getString("tool_id"));
?? ??? ?? cw.setUpdateTime(rs.getDate("update_time"));
?? ??? ?? cw.setUpdateUser(rs.getString("update_user"));
?? ??? ?? cw.setIsHidden(rs.getInt("is_hidden"));
?? ??? ?return cw;
?? ?}
}

?

前臺jsp頁面,我用的是一個jsp頁面,嵌套另一個jsp頁面,如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<div name="spreadContent">
<c:forEach items="${list.cwInfo }" var="list">
<tr class="odd">
?? ?<td headers="expansion">
?? ??? ?${list.cwName }
?? ?</td>
</tr>
<c:if test="${not empty list.cwInfo }">

  <c:set var="list" value="${list.cwInfo}" scope="request" />???? //傳參用這種方式傳遞
?? ?<c:import url="courseContent.jsp" />??????????? //重點是這里包含本頁面,本頁面就叫做courseContent.jsp,這是遞歸jsp頁面
</c:if>
</c:forEach>
</div>

主要的jsp頁面如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<body>
<table>
?? ?<div id="content-content">
?? ??? ?<c:if test="${not empty list }">
? ?? ??? ?<c:forEach items="${list }" var="list">
?? ??? ?<tr class="odd">
?? ??? ??? ?<td headers="checkboxes">
?? ??? ??? ??? ??? ?${list.cwName }
?? ??? ??? ?</td>
?? ??? ??? ?</tr>
?? ??? ??? ??? ?<c:if test="${not empty list.cwInfo }">

      <c:set var="list" value="${list.cwInfo}" scope="request" />????????????????????? //傳參用這種方式傳遞
?? ??? ??? ??? ?<c:import url="courseContent.jsp" />????????????????????????????????????????????????? //重點是這里調用了jsp的遞歸jsp方法
?? ??? ??? ??? ??? ? </c:if>
?? ? ??? ??? ??? ?</c:forEach>
?? ? ??? ??? ?</c:if>
?? ? ??? ??? ?</div>
?? ??? ??? ?</c:forEach>
? ?? ??? ?</c:if>
? ?? ??? ?</div>?? ??? ??? ??? ??? ??? ??? ??? ??? ?
?? ??? ?</table>
?? ?</form>?? ??? ??? ??? ??? ??? ?
</div>
</body>
<script type="text/javascript" src="/library/js/jquery/jquery-1.9.1.min.js">
?? ?</script>
</html>

?

轉載于:https://www.cnblogs.com/zrui-xyu/p/4737227.html

總結

以上是生活随笔為你收集整理的springJDBC一对多关系,以及Java递归,jsp递归的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。