一:一对一
1.单向(X-->Y)
- package com.xs;
-
- public class X {
- private Y y;
-
- public Y getY() {
- return y;
- }
-
- public void setY(Y y) {
- this.y = y;
- }
-
-
- }
- package com.xs;
-
- public class Y {
-
- }
2.双向
- package com.xs;
-
- public class X {
- private Y y;
-
- public Y getY() {
- return y;
- }
-
- public void setY(Y y) {
- this.y = y;
- }
- }
- package com.xs;
-
- public class Y {
- private X x;
-
- public X getX() {
- return x;
- }
-
- public void setX(X x) {
- this.x = x;
- }
-
- }
二:多对一
1.单向(X-->Y)
- package com.xs;
-
- public class X {
- private Y y;
-
- public Y getY() {
- return y;
- }
-
- public void setY(Y y) {
- this.y = y;
- }
- }
- package com.xs;
-
- public class Y {
-
- }
单向多对一与单向一对一的模型是一样的,单向一对一是单向多对一的特殊情况。
2.双向
- package com.xs;
-
- public class X {
- private Y y;
-
- public Y getY() {
- return y;
- }
-
- public void setY(Y y) {
- this.y = y;
- }
- }
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class Y {
- private Set<X> xs = new HashSet<X>();
-
- public Set<X> getXs() {
- return xs;
- }
-
- public void setXs(Set<X> xs) {
- this.xs = xs;
- }
- }
三:一对多
1.单向(X-->Y)
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class X {
- private Set<Y> ys = new HashSet<Y>();
-
- public Set<Y> getYs() {
- return ys;
- }
-
- public void setYs(Set<Y> ys) {
- this.ys = ys;
- }
- }
- package com.xs;
-
- public class Y {
-
- }
2.双向
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class X {
- private Set<Y> ys = new HashSet<Y>();
-
- public Set<Y> getYs() {
- return ys;
- }
-
- public void setYs(Set<Y> ys) {
- this.ys = ys;
- }
- }
- package com.xs;
-
- public class Y {
- private X x;
-
- public X getX() {
- return x;
- }
-
- public void setX(X x) {
- this.x = x;
- }
- }
四:多对多
1.单向(X-->Y)
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class X {
- private Set<Y> ys = new HashSet<Y>();
-
- public Set<Y> getYs() {
- return ys;
- }
-
- public void setYs(Set<Y> ys) {
- this.ys = ys;
- }
- }
- package com.xs;
-
- public class Y {
- }
单向多对多与单向一对多的模型是一样的。
2.双向
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class X {
- private Set<Y> ys = new HashSet<Y>();
-
- public Set<Y> getYs() {
- return ys;
- }
-
- public void setYs(Set<Y> ys) {
- this.ys = ys;
- }
- }
- package com.xs;
-
- import java.util.HashSet;
- import java.util.Set;
-
- public class Y {
- private Set<X> xs = new HashSet<X>();
-
- public Set<X> getXs() {
- return xs;
- }
-
- public void setXs(Set<X> xs) {
- this.xs = xs;
- }
- }
总结:单向关联是我中有你,你中无我;双向关联是我中有你,你中有我。