一:一对一
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;
-
}
-
}
总结:单向关联是我中有你,你中无我;双向关联是我中有你,你中有我。