zoukankan      html  css  js  c++  java
  • mybatis关联配置(一对多配置)

    敲代码也有不少日子了,今天碰到个需求,就是定时器生成一张表,但是这个表的某些数据是从另外两张表中拿到的,定外两张表又是一对多的关系,想着咋在一个接口就能敲出来,大概结构如下

    然后需要a表的数据(比如张三)对应的是一个集合(吃饭和睡觉数据),这个时候,有人会说把b表的字段加a表里映射,但是如果b表字段比较多,也这样岂不是很麻烦,果断百度,发现mybatis还有一对多,多对一的映射配置,然后我就试了一下

    实体类代码如下

    a表实体类:

    public class atable{
        private Integer id;
    
        private String name;
    
        private String password;
    
        private List<btable> bTableList;
        
        set,get此处省略不写了
    }

    b表实体类:

    public class btable{
        private Integer id;
    
        private String aid;
    
        private String hobby;
        
        set,get此处省略不写了
    }

    mapper.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="com.infohold.city.map.dao.mybatis.CompanycheckplanmonthDao" >
      <resultMap id="BaseResultMap" type="com.infohold.city.map.model.CompanyCheckPlanMonth" >
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="name" property="name" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
        
         <!-- 一对多的关系 -->  
        <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->  
        <collection property="bTableList" ofType="com.entity.btable">  
            <id column="cid" property="id" jdbcType="INTEGER" />
            <result column="aid" property="aid" jdbcType="VARCHAR" />
            <result column="hobby" property="hobby" jdbcType="VARCHAR" />
        </collection>  
      </resultMap>
    
        <select id="getatableList" resultMap="BaseResultMap">
            select a.id,a.name,b.id as cid,b.aid,b.hobby from atable a, btable b  
                where a.id=b.aid
       </select>

     注意:

    然后就可以解决啦,不用在a的实体类里加b的属性了,小菜鸟还是应该勤奋点,要多学点知识~~

  • 相关阅读:
    ASP.NET常用技巧方法代码断
    130道ASP.NET面试题
    ASP.NET 数据绑定常用代码及其性能分析
    asp.net C# 时间格式大全
    ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换
    经典算法,每个语言都出现的算法
    Asp.net 后台添加CSS、JS、Meta标签
    ASP.NET 窗体间传值实现方法详解
    asp.net 常用的几种调用存储过程的方法
    codeforces 868C
  • 原文地址:https://www.cnblogs.com/supiaopiao/p/8683129.html
Copyright © 2011-2022 走看看