美文网首页
40-综合实战:多对多映射

40-综合实战:多对多映射

作者: c88bc9f9d088 | 来源:发表于2020-11-17 08:36 被阅读0次

    将以上的结构转换为类结构,并且可以获取如下的信息:

  • 获取一个用户访问的所有商品的详细信息;

  • 获取一个商品被浏览过的全部的用户信息;

    对于此时的程序只需要去考虑实体表的设计即可,也就是说对于中间的访问记录信息表不要求你进行转换处理,之定义两个类即可。

范例:

class Member{
    private String mid;
    private String name;
    private Product products []; //多个商品
    public Member(String mid,String name){
        this.mid = mid;
        this.name = name;
    }
    public void setProducts(Product products[]){
        this.products = products;
    }
    public Product[] getProducts(){
        return this.products; 
    }
    // setter、getter、无参构造略
    public String getInfo(){
        return "【用户信息】mid = " + this.mid + "、name = " + this.name;
    }
}
class Product{
    private long pid;
    private String name;
    private double price;
    private Member members[];
    public Product(long pid,String name,double price){
        this.pid = pid;
        this.name = name;
        this.price = price;
    }
    //  setter、getter、无参构造略
    public void setMembers(Member members[]){
        this.members = members;
    }
    public Member[] getMembers(){
        return this.members;
    }
    public String getInfo(){
        return "【商品信息】pid =" + this.pid + "、name = " + this.name + "、price = " + this.price;
    }
}
public class JavaDemo{
    public static void main(String args[]){
        //第一步:根据结构设置对象数据
        Member memA = new Member("mldn","李四");
        Member memB = new Member("mldn","张三");
        Product proA = new Product(1L,"Java开发图书",79.8);
        Product proB = new Product(2L,"很高端大气的耳机",2399.0);
        Product proC = new Product(3L,"小米手机10",3999.0);
        memA.setProducts(new Product[]{proA,proB,proC});
        memB.setProducts(new Product[]{proA});
        proA.setMembers(new Member[]{memA,memB});
        proB.setMembers(new Member[]{memA});
        proC.setMembers(new Member[]{memA});
        //第二步:根据要求获取数据
        System.out.println("--------------根据用户查看浏览商品信息---------------");
        System.out.println(memA.getInfo());
        for(int x = 0;x<memA.getProducts().length; x++){
            System.out.println("\t|- " + memA.getProducts()[x].getInfo());
        }
        System.out.println("--------------查看商品被浏览的记录---------------");
        System.out.println(proA.getInfo());
        for(int x = 0; x < proA.getMembers().length; x++){
            System.out.println("\t|- " + proA.getMembers()[x].getInfo());
        }
    }   
}

相关文章

  • 40-综合实战:多对多映射

        将以上的结构转换为类结构,并且可以获取如下的信息: 获取一个用户访问的所有商品的详细信息; 获取一个商品被...

  • 41-综合实战:复杂多对多映射

        在进行项目实际开发过程之中,对于用户的授权管理是一项重要的任务,下面给出了一个最为常见的用户权限管理的表结...

  • 39-综合实战:一对多映射

        按照表的要求将表的结构转换为类结构,同时可以获取如下信息: 获取一个分类的完整信息; 可以根据分类获取其对...

  • 映射:多对多

  • Hibernate—— 多对多映射

    简介 多对多关联也是常见的一种关联关系,如项目和员工之间就是典型的多对多关系。 ①一个项目可以...

  • hibernate --------多对多映射

    还是用学生和老师来举例子一个老师可以教多个学生,一个学生也可以有多个老师(1)先写老师的实体类package te...

  • Django-关系映射

    关系映射 一对一映射 语法 查询 一对多映射 语法 查询 多对多映射 语法 查询 自定义查询对象

  • 高级映射-多对多查询

    1.需求查询用户及用户购买商品信息 2.思路 将用户信息映射到user中。 在UserBean类中添加订单列表属性...

  • spring data jpa

    一对一 一对多 多对多映射

  • Hibernate—— 一对多映射

    MyEclipse——环境下 映射的类型 1、一对多映射 (one-to-many) 常用 2、多对一映射 (ma...

网友评论

      本文标题:40-综合实战:多对多映射

      本文链接:https://www.haomeiwen.com/subject/gzntiktx.html