zoukankan      html  css  js  c++  java
  • mybatis的一些知识点

    一、collection 标签:用于定义关联的list集合类型的封装规则

    例子:

    public class CategoryVO {
    
        private Integer id;
        private String name;
        private String type;
        private Integer fatherId;
    
        // 三级分类vo list
        private List<SubCategoryVO> subCategoryVOList;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public Integer getFatherId() {
            return fatherId;
        }
    
        public void setFatherId(Integer fatherId) {
            this.fatherId = fatherId;
        }
    
        public List<SubCategoryVO> getSubCategoryVOList() {
            return subCategoryVOList;
        }
    
        public void setSubCategoryVOList(List<SubCategoryVO> subCategoryVOList) {
            this.subCategoryVOList = subCategoryVOList;
        }
    }
    public class SubCategoryVO {
    
        private Integer subId;
        private String subName;
        private String subType;
        private Integer subFatherId;
    
        public Integer getSubId() {
            return subId;
        }
    
        public void setSubId(Integer subId) {
            this.subId = subId;
        }
    
        public String getSubName() {
            return subName;
        }
    
        public void setSubName(String subName) {
            this.subName = subName;
        }
    
        public String getSubType() {
            return subType;
        }
    
        public void setSubType(String subType) {
            this.subType = subType;
        }
    
        public Integer getSubFatherId() {
            return subFatherId;
        }
    
        public void setSubFatherId(Integer subFatherId) {
            this.subFatherId = subFatherId;
        }
    }
    CategoryVO 里有list字段SubCategoryVO,查询的时候,要使用collection在xml里进行配置
     <resultMap id="myCategoryVO" type="com.zb.pojo.vo.CategoryVO">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="type" property="type"/>
        <result column="fatherId" property="fatherId"/>
    
        <!--
          collection 标签:用于定义关联的list集合类型的封装规则
          property:对应三级分类的list属性名
          ofType:集合的类型,三级分类的vo
        -->
        <collection property="subCategoryVOList" ofType="com.zb.pojo.vo.SubCategoryVO">
          <id column="subId" property="subId"/>
          <result column="subName" property="subName"/>
          <result column="subType" property="subType"/>
          <result column="subFatherId" property="subFatherId"/>
        </collection>
      </resultMap>
      <select id="getSubCatList" resultMap="myCategoryVO" parameterType="int">
         SELECT
            f.id as id,
            f.`name` as `name`,
            f.type as type,
            f.father_id as fatherId,
            c.id as subId,
            c.`name` as subName,
            c.type as subType,
            c.father_id as subFatherId
        FROM
            category f
        LEFT JOIN
            category c
        on
            f.id = c.father_id
        WHERE
            f.father_id = #{rootCatId}
      </select>

    这样就可以查询出包含列表的数据:

    {
        "status": 200,
        "msg": "OK",
        "data": [
            {
                "id": 11,
                "name": "蛋糕",
                "type": "2",
                "fatherId": 1,
                "subCategoryVOList": [
                    {
                        "subId": 37,
                        "subName": "蒸蛋糕",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 38,
                        "subName": "软面包",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 39,
                        "subName": "脱水蛋糕",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 40,
                        "subName": "马卡龙",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 41,
                        "subName": "甜甜圈",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 42,
                        "subName": "三明治",
                        "subType": "3",
                        "subFatherId": 11
                    },
                    {
                        "subId": 43,
                        "subName": "铜锣烧",
                        "subType": "3",
                        "subFatherId": 11
                    }
                ]
            },
            {
                "id": 12,
                "name": "点心",
                "type": "2",
                "fatherId": 1,
                "subCategoryVOList": [
                    {
                        "subId": 44,
                        "subName": "肉松饼",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 45,
                        "subName": "华夫饼",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 46,
                        "subName": "沙琪玛",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 47,
                        "subName": "鸡蛋卷",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 48,
                        "subName": "蛋饼",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 49,
                        "subName": "凤梨酥",
                        "subType": "3",
                        "subFatherId": 12
                    },
                    {
                        "subId": 50,
                        "subName": "手撕面包",
                        "subType": "3",
                        "subFatherId": 12
                    }
                ]
            }
        ]
    }
  • 相关阅读:
    广播接收者的生命周期?
    如何让自己的广播只让指定的 app 接收?
    在 manifest 和代码中如何注册和使用 BroadcastReceiver?
    请描述一下 BroadcastReceiver?
    说说 Activity、Intent、Service 是什么关系
    什么是IntentService?有何优点?
    Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?
    Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?
    两个 Activity 之间跳转时必然会执行的是哪几个方法?
    如何保存 Activity 的状态?
  • 原文地址:https://www.cnblogs.com/zhaobao1830/p/13385893.html
Copyright © 2011-2022 走看看