Java之映射关系

Java之映射关系映射关系即是对应关系:在数据库的表与表之间有三种关系:·一对一·一对多(多对一)·多对多设计思想:首先确定对象,属于一的对象直接定义,属于多的对象采用数组定义:然后分别在类中定义相关的属性,比如在顾客中定义商品的属性,商品中定义顾客的属性,那么顾客和

大家好,欢迎来到IT知识分享网。Java之映射关系"

映射关系即是对应关系:

在数据库的表与表之间有三种关系:

  ·一对一

  ·一对多(多对一)

  ·多对多

 

设计思想:

首先确定对象,属于 一 的对象直接定义,属于 多 的对象采用数组定义:然后分别在类中定义相关的属性,比如在顾客中定义商品的属性,商品中定义顾客的属性,那么顾客和商品必然就有联系了。

在一对多的关系中:

    Item类是一,Subitem是多,

    那么就在Item类中定义Subitem数组,表示一个Item对应多个Subitem;

    在Subitem类中定义一个Item属性,表示一个Subitem对应一个Item。

public class Item {
    private long id;
    private String title;
    private Subitem[] subitems;

    public Item() {
    }

    public Item(long id, String title) {
        this.id = id;
        this.title = title;
    }
    public void setSubitems(Subitem[] subitems){
        this.subitems = subitems;
    }
    public Subitem[] getSubitems(){
        return this.subitems;
    }
    public String getInfo(){
        return "【分类信息】 id:" + this.id +
                "  title:" + this.title;
    }
}
public class Subitem {
    private long id;
    private String title;
    private Item item;

    public Subitem() {
    }

    public Subitem(long id, String title) {
        this.id = id;
        this.title = title;
    }

    public void setItem(Item item){
        this.item = item;
    }

    public Item getItem(){
        return this.item;
    }

    public String getInfo(){
        return "【子分类信息】 id: " + this.id + "、 title: " + this.title;
    }
}
 public static void main(String[] args) {
        // 1. 根据结构设置对象数据
        Item item = new Item(1L,"图书");
        Subitem[] subitems = new Subitem[] {
                new Subitem(10L,"编程图书"),
                new Subitem(11L,"图形图像类图书")
        };
        // 设置Item的subitems属性的值
        item.setSubitems(subitems);     // 一个分类下有多个子分类
        for (int x = 0; x < subitems.length; x++) {
            subitems[x].setItem(item);      // 获取subitems中的对象元素并设置item属性的值
        }

        // 2. 根据要求获取数据
        System.out.println(item.getInfo());
        for (int x = 0; x < item.getSubitems().length; x++) {
            System.out.println("\t|-" + item.getSubitems()[x].getInfo());
        }
    }

 

 

在多对多的关系中:

用户类中定义产品数组,表示一个用户对应多个产品;

产品类中定义用户数组,表示一个产品对应多个用户。

public class Menber {
    private String mid;
    private String name;
    private Product[] products;

    public Menber() {
    }

    public Menber(String mid, String name) {
        this.mid = mid;
        this.name = name;
    }

    public void setProducts(Product[] products) {
        this.products = products;
    }

    public Product[] getProducts() {
        return this.products;
    }

    public String getInfo(){
        return "【用户信息】 min = " + this.mid + "\tname = " + this.name;
    }
}
public class Product {
    private long pmin;
    private String title;
    private double price;
    private Menber[] menbers;

    public Product() {
    }

    public Product(long mid, String title, double price) {
        this.pmin = mid;
        this.title = title;
        this.price = price;
    }

    public Menber[] getMenbers() {
        return menbers;
    }

    public void setMenbers(Menber[] menbers) {
        this.menbers = menbers;
    }

    public String getInfo(){
        return "【商品信息】 min = " + this.pmin + "\ttitle = " + this.title + "\tprice = " + price;
    }
}
// 主类
public static void main(String[] args) { //1.根据结构设置对象数据 Menber men1 = new Menber("mid1","张三"); Menber men2 = new Menber("mid2","李四"); Product product1 = new Product(1L, "Java开发图书", 66.6); Product product2 = new Product(2L, "Python开发图书", 22.6); Product product3 = new Product(3L, "C语言开发图书", 44.6); Product product4 = new Product(4L, "C++开发图书", 33.6); Product product5 = new Product(5L, "GO开发图书", 21.6); // 设置用户和商品的关系 //1.设置用户的产品信息 men1.setProducts(new Product[]{product1,product2,product3,product4,product5}); men2.setProducts(new Product[]{product1,product3,product5}); //2.设置产品的用户信息 product1.setMenbers(new Menber[]{men1,men2}); product2.setMenbers(new Menber[]{men1}); product3.setMenbers(new Menber[]{men1,men2}); product4.setMenbers(new Menber[]{men1}); product5.setMenbers(new Menber[]{men1,men2}); //2. 根据要求获取数据 System.out.println("--------------查看书籍的用户--------------"); System.out.println(product1.getInfo()); for (Menber mem : product1.getMenbers()) { System.out.println("\t|-" + mem.getInfo()); } System.out.println(product2.getInfo()); for (Menber mem : product2.getMenbers()) { System.out.println("\t|-" + mem.getInfo()); } System.out.println(product3.getInfo()); for (Menber mem : product3.getMenbers()) { System.out.println("\t|-" + mem.getInfo()); } System.out.println(product4.getInfo()); for (Menber mem : product4.getMenbers()) { System.out.println("\t|-" + mem.getInfo()); } System.out.println(product5.getInfo()); for (Menber mem : product5.getMenbers()) { System.out.println("\t|-" + mem.getInfo()); } System.out.println("--------------查看用户的书籍--------------"); System.out.println(men1.getInfo()); for (Product pro : men1.getProducts()) { System.out.println("\t|-" + pro.getInfo()); } System.out.println(men2.getInfo()); for (Product pro : men2.getProducts()) { System.out.println("\t|-" + pro.getInfo()); } }

 

 

 

仅供参考

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31352.html

(0)
上一篇 2023-11-06 15:33
下一篇 2023-11-12 16:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信