Java中一对多映射关系(转)

Posted 叶墨悻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中一对多映射关系(转)相关的知识,希望对你有一定的参考价值。

 

通过例子,一个人可以有多辆汽车

定义人   这个类

人可以有很多辆汽车,类中车属性用数组

复制代码
class Person{ 
    private String name;
    private String phone;
    private Car[] car; 
    public Person() {}
    public Person(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Car[] getCar() {
        return car;
    }
    public void setCar(Car[] car) {
        this.car = car;
    }
    public String getInfo(){
        return "姓名"+name+",电话"+phone;
    }
}
复制代码

然后定义汽车  这个类

复制代码
class Car{ 
    private String name;
    private double price;
    private Person person;
    public Car() {}
    public Car(String name,double price) {
        this.name = name;
        this.price = price;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
    public String getInfo() {
        return "品牌:"+name+" 价格:"+price;
    }
复制代码

之后,在测试类中,分别实例Person类和Car类

人这个对象只new一个

汽车可以无限个,这里象征性实例三个

        Person p = new Person("阿三","33333333");
        Car c1 = new Car("宝马",400000);
        Car c2 = new Car("宝来",100000);
        Car c3 = new Car("宝骏",800

对象实例化之后,设置彼此的关系,即一个人对应三台车,每台车都对应一个人

通过set方法传值

        p.setCar(new Car[]{c1,c2,c3}); 
        c1.setPerson(p);
        c2.setPerson(p);
        c3.setPerson(p);

测试

通过人,查询其下的车辆信息

System.out.println(p.getInfo()+"拥有的车辆");
for(int i=0;i<p.getCar().length;i++) {
    System.out.println(p.getCar()[i].getInfo()); //数组类型用for循环打印
}

运行

通过车,查找所属人信息

System.out.println(c1.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());
System.out.println(c2.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());
System.out.println(c3.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());

运行

 

以上是关于Java中一对多映射关系(转)的主要内容,如果未能解决你的问题,请参考以下文章

Java 中mybatis 关系映射,比如:一对多

Java中一对多映射关系

使用一对多关系映射从邮递员那里获取输入?春天的Java

(转)Hibernate框架基础——多对多关联关系映射

mybatis xml数据层框架应用--Mybatis关系映射之一对多关系映射

框架 day32 Hibernate,一级缓存,关联关系映射(一对多,多对多)