1 一对多
1)分类和商品:一个分类里有多个商品,一个商品只能属于一个分类。
2)客户和联系人:一个客户有多个联系人,一个联系人只能属于一个客户。(客户是一,联系人是多)
一对多建表是通过外键建立联系。
新建客户和联系人的实体类,Customer.java,LinkMan.java
在Customer.java中set一个list,添加get和set方法。存储客户的联系人。
private Set<LinkMan> setLinkMan=new HashSet<LinkMan>();
在LinkMan.java中表示所属的客户。添加get和set方法
private Customer customer;
Customer.hbm.xml
<!--name是set集合的名称-->
<set name="setLinkMan">
<!--外键,1和多都配置外键,外键名字随便起-->
<key column="clid"></key>
<!--联系人实体的全路径-->
<one-to-many class="cn.hiber.entity.LinkMan"/>
</set>
LinkMan.hbm.xml
<!--name:联系人所属的客户。class:客户的全路径。column:两实体类的外键-->
<many-to-one name="custumer" class="cn.hiber.entity.Customer" column="clid"></many-to-one>
在hibernate.cfg.xml中加入Customer.hbm.xml和LinkMan.hbm.xml的mapping.
2 多对多
1)订单和商品:一个订单里有多个商品,一个商品属于多个订单。
2)用户和角色
-用户:张三、李四、王五
-角色:总经理、秘书、司机、保安
-张三可以是总经理、司机
-李四可以是司机、秘书、保安
-王五可以是总经理、秘书
多对多是创建第三张表维护关系。
用户hbm.xml
角色hbm.xml
两个xml文件之间的关系
在hibernate.cfg.xml中加入2个xml的mapping
3 一对一
1)一个丈夫只有一个妻子,一个妻子只有一个丈夫。