zoukankan      html  css  js  c++  java
  • Mybatis 多表间查询之 一对多

    前期准备见 Mybatis 多表间查询之 多对一

    0.准备

    1. domain Category

    2. 主配置文件

    ...
     </environments>
        <mappers>
            <mapper resource="cn/ccut/mapper/CategoryDao.xml"  ></mapper>
        </mappers>
    </configuration>
    

    3. 接口ICategoryDao

    public interface ICategoryDao {
        Category getCate(String cid);
    }
    
    

    1. 连接查询

    1.1 映射配置文件 CategoryDao.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="cn.ccut.dao.ICategoryDao">
    
        <resultMap id="res1" type="cn.ccut.domain.Category">
            <id property="cid" column="tcid"/>
            <result property="cname" column="tcname"/>
            <result property="desc" column="desc"/>
    
            <collection property="bList" ofType="cn.ccut.domain.Book">
                <id property="bid" column="bid"/>
                <result property="bname" column="bname"/>
                <result property="author" column="author"/>
                <result property="price" column="price"/>
                <result property="press" column="press"/>
                <result property="cid" column="cid"/>
            </collection>
            
        </resultMap>
        
        <select id="getCate" resultMap="res1">
    select t1.cid tcid,t1.cname tcname,t1.desc,t.* from t_book  t join t_category t1 on t.cid=t1.cid and t.cid=#{cid}
        </select>
    </mapper>
    
    

    1.2 测试

    public class tests {
        @Test
        public void fun(){
            ICategoryDao mapper = MyBatisUtil.openSession().getMapper(ICategoryDao.class);
            System.out.println( mapper.getCate("5F79D0D246AD4216AC04E9C5FAB3199E"));
        }
    }
    

    成功

    2. 分步查询

    2.1 CategoryDao.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="cn.ccut.dao.ICategoryDao">
    
        <resultMap id="res1" type="cn.ccut.domain.Category">
            <id property="cid" column="cid"/>
            <collection property="bList" column="cid" ofType="cn.ccut.domain.Book"  select="selectBook">
            </collection>
        </resultMap>
    
        <select id="getCate" resultMap="res1">
    select * from t_Category where cid=#{cid}
        </select>
        
        <select id="selectBook" resultType="cn.ccut.domain.Book">
            select * from t_book where cid=#{c1id}
        </select>
    </mapper>
    
    
    不停的思考,就会不停的进步
  • 相关阅读:
    Shapelib库编译
    CheckedComboBoxEdit实现单选
    VS2019卡在创建Windows恢复点
    ArcGIS Add-In 创建自定义菜单
    使用DevExpress展示地图—加载SHP
    未能从程序集ESRI.ArcGIS.AddIns.SDK加载任务"ValidateAddInXMLTask"
    没有为该对象定义无参数的构造函数
    RichEditControl自定义高亮语法
    Java解析Word模版,替换${}的值
    64.QT-单播、广播、组播
  • 原文地址:https://www.cnblogs.com/zhenqk/p/13544042.html
Copyright © 2011-2022 走看看