一对多关系的多表关联查询
来源:互联网 发布:软件测试行业多少年 编辑:程序博客网 时间:2024/04/28 07:26
情景描述
笔者在业务开发过程当中,遇到过一对多关系的多表关联查询这种情况,为了便于理解和描述,笔者脱离业务,模拟一个超市购物菜单,进行必要的说明;
一对多关系多表关联查询,超市购物菜单图如下:
言归正传
了解上面的情景之后,我直接给各位看客端上如下文件和代码(来源于笔者实际的业务关系)
实体类代码如下
实体类 KnowledgeBaseType.java
package com.bonc.bm.kownledgeBase.bo;import java.util.List;/** * 知识库文档栏目的实体类 * * @author 刘斌(qq:1522099825) * @create 2016-12-15 * @myblog http://blog.csdn.net/liubin5620 * */public class KnowledgeBaseType {//知识库的模块类型private String knowledge_type;//知识库的类型名称private String type_name;//知识库模板文件的List集合private List<KnowledgeBaseList> knowledgelist;public String getKnowledge_type() {return knowledge_type;}public void setKnowledge_type(String knowledge_type) {this.knowledge_type = knowledge_type;}public String getType_name() {return type_name;}public void setType_name(String type_name) {this.type_name = type_name;}public List<KnowledgeBaseList> getKnowledgelist() {return knowledgelist;}public void setKnowledgelist(List<KnowledgeBaseList> knowledgelist) {this.knowledgelist = knowledgelist;}}
实体类KnowledgeBaseList.java
package com.bonc.bm.kownledgeBase.bo;/** * 知识库模板文件的实体类 * * @author 刘斌(qq:1522099825) * @create 2016-12-15 * @myblog http://blog.csdn.net/liubin5620 * */public class KnowledgeBaseList {//模板idprivate String modal_id;//模板名称private String modal_name;//模板的附带图片private String modal_picture;//模板的模块类型private String modal_type;public String getModal_id() {return modal_id;}public void setModal_id(String modal_id) {this.modal_id = modal_id;}public String getModal_name() {return modal_name;}public void setModal_name(String modal_name) {this.modal_name = modal_name;}public String getModal_picture() {return modal_picture;}public void setModal_picture(String modal_picture) {this.modal_picture = modal_picture;}public String getModal_type() {return modal_type;}public void setModal_type(String modal_type) {this.modal_type = modal_type;}}
sqlmap.xml代码如下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="bm.knowledgebase"><!-- 获取知识库模块类型 --><select id="getKnowledgeType" resultMap="knowledgeTypeList">SELECTt.KNOWLEDGE_TYPE, t.TYPE_NAMEFROM ${db_schema_pm_dm}.KNOWLEDGE_TYPE t</select><!-- 知识库模块类型的实体类映射 --><resultMap class="com.bonc.bm.kownledgeBase.bo.KnowledgeBaseType" id="knowledgeTypeList"><result property="knowledge_type" column="KNOWLEDGE_TYPE"/><result property="type_name" column="TYPE_NAME"/><result property="knowledgelist" column="{knowledge_type=KNOWLEDGE_TYPE}" select="bm.knowledgebase.getKnowledgeInfo"/></resultMap><!-- 获取相应模块类型的文件模板 --><select id="getKnowledgeInfo" parameterClass="java.util.HashMap" resultMap="knowledgeBaseListInfo">SELECT MODAL_ID, MODAL_NAME, MODAL_PICTURE, MODAL_TYPE FROM ${db_schema_pm_dm}.KNOWLEDGE_BASE_UPDATE WHERE MODAL_TYPE = #knowledge_type# </select><!-- 知识库每一个模块对应的文件实体类映射 --><resultMap class="com.bonc.bm.kownledgeBase.bo.KnowledgeBaseList" id="knowledgeBaseListInfo"><result property="modal_id" column="MODAL_ID"/><result property="modal_name" column="MODAL_NAME"/><result property="modal_picture" column="MODAL_PICTURE"/><result property="modal_type" column="MODAL_TYPE"/></resultMap></sqlMap>
knowledge-base.jsp页面代码如下
<!DOCTYPE html><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="b" uri="/bonc-tags"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><%String contextPath = request.getContextPath();%><style type="text/css">.dropdown-submenu {position: relative;}.dropdown-submenu>.dropdown-menu {top: 0;left: 100%;margin-top: -6px;margin-left: -1px;-webkit-border-radius: 0 6px 6px 6px;-moz-border-radius: 0 6px 6px;border-radius: 0 6px 6px 6px;}.dropdown-submenu:hover>.dropdown-menu {display: block;}.dropdown-submenu>a:after {display: block;content: " ";float: right;width: 0;height: 0;border-color: transparent;border-style: solid;border-width: 5px 0 5px 5px;border-left-color: #ccc;margin-top: 5px;margin-right: -10px;}.dropdown-submenu:hover>a:after {border-left-color: #fff;}.dropdown-submenu.pull-left {float: none;}.dropdown-submenu.pull-left>.dropdown-menu {left: -100%;margin-left: 10px;-webkit-border-radius: 6px 0 6px 6px;-moz-border-radius: 6px 0 6px 6px;border-radius: 6px 0 6px 6px;}</style><style>body {/* margin: 10px; */background: #e0e9f1;}.col-md-3 {margin-left: 25px;}@media ( min-width : 320px) and (max-width: 452px) {.conth {font-size: 6px;padding: 0;text-align: center;}}</style><div data-target="#table-example2" data-offset="50" data-spy="scroll" class="col-md-12" style="margin-left: 0px"><div style="border: 0px green solid; background-color: white;"><video controls="controls" autoplay="autoplay" style="border: 0px green solid;height:100%;width:100%;"><source src="<%=request.getContextPath()%>/files/unibomsTrailer.mp4" type="video/mp4" /><source src="<%=request.getContextPath()%>/files/unibomsTrailer.webm" type="video/webm" /><object data="<%=request.getContextPath()%>/files/unibomsTrailer.mp4" ><embed src="<%=request.getContextPath()%>/files/unibomsTrailer.mp4" /></object></video></div><div class="index-wrap"style="background-color: #fff; border: 0px solid blue;"><ul class="bd-report-list" style="border: 0px red solid"><c:forEach items="${knowledgeTypeInfo}" var="a" varStatus="status"><li style="border: 0px blue solid; height: 120px; background-color: #fff; margin-top: 40px;"><a href="#${a.knowledge_type}" target="_blank" data-toggle="tab" style="color: #fff;"> <c:if test="${status.index==0}"><img id="autoCheck" alt="focus"src="<%=request.getContextPath()%>/icons/external-marketing.png"style="width: 65px; height: 62px; position: relative; float: left; border: 0px solid blue; margin-left: 30px; margin-right: 25px;"></c:if> <c:if test="${status.index==1}"><img alt="focus"src="<%=request.getContextPath()%>/icons/external-product.png"style="width: 65px; height: 62px; position: relative; float: left; border: 0px solid blue; margin-right: 25px;"></c:if> <c:if test="${status.index==2}"><img alt="focus"src="<%=request.getContextPath()%>/icons/other-type.png"style="width: 65px; height: 62px; position: relative; float: left; border: 0px solid blue; margin-right: 25px;"></c:if><p class="index-head" style="text-align: left;style="color:#fff;">${a.type_name}</p><!--对于栏目的描述,原本想在码表里追加描述字段,经询问暂时先在页面写死,后期如有新需求可在pm_dm.knowledge_base_update码表追加 --><c:if test="${status.index==0}"><div class="index-desc">联通对外宣传合作材料</div></c:if> <c:if test="${status.index==1}"><div class="index-desc" style="margin-right: 40px;">主要包含精准营销产品、征信产品、沃指数、能力开放平台等模板</div></c:if> <c:if test="${status.index==2}"><div class="index-desc">其他分类</div></c:if> </a></li></c:forEach></ul></div><div class="tab-content"><!-- 知识库更新展示列表 --><c:forEach items="${knowledgeTypeInfo}" var="a"><div class="tab-pane fade" id="${a.knowledge_type}"style="border: 0px blue solid;"><div class="book_sort" style="border: 1px #C0C0C0 solid;"><div class="book_new" style="border: 0px blue solid;height: 40px;background-color:#8FBC8F"><div class="book_left" style="border: 0px blue solid; margin-left: 20px; margin-top:5px;height: 40px; width: 150px;">${a.type_name}</div><c:forEach items="${a.knowledgelist}" var="b" varStatus="status"><c:if test="${status.count>=6}"><div style="margin-right: 20px; border: 0px red solid; text-align: right;"><i style="cursor: pointer" onclick="findMore(${a.knowledge_type})">更多》</i></div></c:if></c:forEach></div><div class="book_class" style="height: 80px;"><dl id="book_focus"><c:forEach items="${a.knowledgelist}" var="b" varStatus="status"><c:if test="${status.count<=5}"><dt style="border: 0px red solid; margin-left: 20px;"><img src="<%=request.getContextPath()%>/icons/${b.modal_picture}" alt="focus" style="width: 90px; height: 90px;" /></dt></c:if></c:forEach></dl></div><div class="book_class" style="height: 80px;"><dl id="book_focus"><c:forEach items="${a.knowledgelist}" var="b" varStatus="status"><c:if test="${status.count<=5}"><ddstyle="text-align: center; border: 0px red solid; margin-left: 20px;"><a href="javascript:void(0);" onclick="downloadKnowledgeFile(${b.modal_id});"name="${b.modal_name}" class="blue">${b.modal_name}</a></dd></c:if></c:forEach></dl></div></div></div></c:forEach></div></div><input type="hidden" name="identification" value="${params.checkLoginId}" id="identification"><script>//页面加载的时候,默认点击第一个栏目,展示文件;window.onload=function(){ var i=$("#autoCheck"); i.click(); isExistButton();};//定义点击查看更多文件,一个栏目只展示5个文件;function findMore(knowledgeBaseId){url="";var modalType=knowledgeBaseId;var url="<%=request.getContextPath()%>/bm/business-management/kownledge-base!getMoreDetail.action?modalType="+ modalType;window.location.href=url;}//定义文件下载的function;function downloadKnowledgeFile(id){var url = "<%=request.getContextPath()%>/bm/business-management/kownledge-base!downloadFile.action?modalId="+id;location.href = url;}</script>
阅读全文
1 0
- 一对多关系的多表关联查询
- MyBatis--关联关系查询--一对多--多表连接查询
- [NHibernate]一对多关系(关联查询)
- [NHibernate]一对多关系(关联查询)
- MyBatis--关联关系查询--自关联--一对多--查询指定父节点的所有子节点
- MyBatis--关联关系查询--一对多--多表单独查询
- 一对多关联查询
- 关联映射的关系(一对多)
- Hibernate -- 一对多的双向关联关系
- hibernate的映射:一对多关联关系
- Hibernate,一对多的关联关系
- Hibernate映射一对多的关联关系
- Hibernate 一对多关联关系
- 映射一对多关联关系
- 映射一对多关联关系
- hibernate一对多关联关系
- 一对多关联关系(外键)
- mybatis一对多关联关系
- 指向指针的指针
- StringBuffer使用不当,引起的性能问题
- bazel-0.5.4-installer-linux-x86_64.sh 下载
- opencv2肤色检测代码
- 运维面试篇------2.CDN基础面试
- 一对多关系的多表关联查询
- CSDN如何转载别人的文章?
- Spring整合Quartz 2.2实现作业动态调度
- java设置cookie,浏览器关闭后cookie随即自动清除问题
- 清理用户配置文件 注册表残留
- C#避免子窗口显示在父窗口的控件之下
- 基于Ubuntu12.04安装交叉编译环境
- es6变量解构赋值(1)
- pycharm去除波浪线的方法