你的位置:首页 > 软件开发 > Java > Java三大框架之——Hibernate关联映射与级联操作

Java三大框架之——Hibernate关联映射与级联操作

发布时间:2016-11-26 21:00:11
什么是Hibernate中的关联映射?  简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射。  它将数据库中的表映射成对应的对象,以对象的形式展现,这样我们就可以通过映射的对象来对数据库中的数据进行间 ...

Java三大框架之——Hibernate关联映射与级联操作

什么是Hibernate中的关联映射?

  简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射。

  它将数据库中的表映射成对应的对象,以对象的形式展现,这样我们就可以通过映射的对象来对数据库中的数据进行间接的操作。

  关联映射是将数据库中的表映射成与之相对应的对象,当你对这个对象进行操作的时候,Hibernate会对数据库中对应的表执行相应的操作,你对该实体的操作实际上就是在间接的操作数据库中与之相对应的表。

  Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 

Hibernate主要实现的映射关系:

        Java三大框架之——Hibernate关联映射与级联操作

 

Hibernate映射的基本结构

    hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.Java)、映射文件(*.hbm.

        映射类(*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。

        映射文件(*.hbm.:它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。

        数据库配置文件(*.properties/*.cfg.:它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。

 

hibernate中的关联关系有四种:一对一、一对多、多对一、多对多。

 

关联关系中又分为单向关联与双向关联

 

      单向关联:单向关联是指只有一方有另一方的关联信息而另一方没有关联信息                    

 

          

 

            A——>B  

 

            A对象中有B对象的关联信息

 

            B对象中没有A对象的关联信息

 

            我们可以通过A对象中B的关联信息查询或修改B对象的信息但无法通过B对象来查询修改A对象的信息

 

            同理A<——B也是单向关联

 

            这种只是单方面的关联我们称为单向关联

 

       双向关联:双向关联是指两方都有另一方的关联信息

 

          

 

            A<——>B

 

            A对象中有B对象的关联信息

 

            B对象中也有A对象的关联信息

 

            我们可以通过A对象中B的关联信息查询或修改B对象的信息也可以通过B对象来查询修改A对象的信息

 

            这种两方都有另一方的关联信息我们称为双向关联

 

单向关联一般在一方配置多方不进行配置

  如:一对多 单向关联在“一”的一方配置文件里进行配置,"多"的一方不进行配置

双向关联两方都要配置

  如:一对多 双向关联在“一”的一方配置文件里需要配置,“多”的一方也需要进行配置

通过下面的代码会慢慢了解

 

下面我们来详细了解一下一对一、一对多、多对一、多对多的单向和双向关联:

 

 

            一对一关联映射

 

 

  一对一关联:一对一是指一个对象对应一个对象  如:一个人只有一个身份证。

      在两个数据表之间的一对一关系可以有两种实现方法,其中一种就是通过两个表的主键相关联,另一种是通过外键相关联

        如:一个人(Person)对应一个地址(Address)代码如下。

  一对一主键单向关联: 

        Person——>Address

 

public class Person {  private int personid;  private String name;  private int age;  //在Person对象中有Address对象的关联信息  private Address address; public class Address{  //Address对象中没有Person对象的关联信息  private int addressid;  private String addressdetail;

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Java三大框架之——Hibernate关联映射与级联操作

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。