大家好,欢迎来到IT知识分享网。
映射关系即是对应关系:
在数据库的表与表之间有三种关系:
·一对一
·一对多(多对一)
·多对多
设计思想:
首先确定对象,属于 一 的对象直接定义,属于 多 的对象采用数组定义:然后分别在类中定义相关的属性,比如在顾客中定义商品的属性,商品中定义顾客的属性,那么顾客和商品必然就有联系了。
在一对多的关系中:
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