zoukankan      html  css  js  c++  java
  • mybatis一对多

    分类和产品的一对多关系

    一个分类中有多个产品

    public class Product {
        private int id;
        private String name;
        private float price;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public float getPrice() {
            return price;
        }
        public void setPrice(float price) {
            this.price = price;
        }
        @Override
        public String toString() {
            return "Product [id=" + id + ", name=" + name + ", price=" + price + "]";
        }
     
    }
    public class Category {
        private int id;
        private String name;
        List<Product> products;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public List<Product> getProducts() {
            return products;
        }
        public void setProducts(List<Product> products) {
            this.products = products;
        }
        @Override
        public String toString() {
            return "Category [id=" + id + ", name=" + name + "]";
        }
         
    }
    

     Category.xml:

    通过left join关联查询,对Category和Product表进行关联查询。
    这里不是用的resultType, 而是resultMap,通过resultMap把数据取出来放在对应的 对象属性里
    注: Category的id 字段 和Product的id字段同名,Mybatis不知道谁是谁的,所以需要通过取别名cid,pid来区分。
    name字段同理。
    <?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.how2java.pojo">
            <resultMap type="Category" id="categoryBean">
                <id column="cid" property="id" />
                <result column="cname" property="name" />
         
                <!-- 一对多的关系 -->
                <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->
                <collection property="products" ofType="Product">
                    <id column="pid" property="id" />
                    <result column="pname" property="name" />
                    <result column="price" property="price" />
                </collection>
            </resultMap>
         
            <!-- 关联查询分类和产品表 -->
            <select id="listCategory" resultMap="categoryBean">
                select c.*, p.*, c.id 'cid', p.id 'pid', c.name 'cname', p.name 'pname' from category_ c left join product_ p on c.id = p.cid
            </select>   
        </mapper>
    

      

     

  • 相关阅读:
    非网管交换机和网管交换机的区别
    百兆工业交换机与千兆工业交换机如何计算码率?
    光纤收发器的测试内容介绍
    使用expect在script中切换到root用户(精华)
    彻底解决ssh.invoke_shell() 返回的中文问题
    Python3之paramiko模块
    linux expect详解
    Apache HTTP Server 虚拟主机配置
    Apache 配置详解
    apache 基本配置
  • 原文地址:https://www.cnblogs.com/yscec/p/12044493.html
Copyright © 2011-2022 走看看