hibernate学习记录(四)hibernate ORM对象关系映射

本文介绍了Hibernate ORM的核心思想——对象关系映射,详细阐述了映射类、映射文件和数据库配置文件在实现ORM中的角色。接着分析了单向关联与双向关联的区别,并详细讲解了七种映射关系,特别是多对多关系的配置。最后,文章探讨了级联操作Cascade的使用和inverse属性的影响,强调了合理设置这两个属性对于性能的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们需要了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。        
        Hibernate在实现ORM功能的时候主要用到的文件有以下三种:

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

例:

package com.test.bean;

public class Test {
    private String  Id;
    private String name;
    private  String remark;

    public Test(String id, String name, String remark) {
        Id = id;
        this.name = name;
        this.remark = remark;
    }

    public Test() {
    }

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "Test{" +
                "Id='" + Id + '\'' +
                ", name='" + name + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}

对应的表如下图:

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

<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.bean">
    <class name="Test" table="test">
        <id name="id">
            <!--主键自增策略-->
            <!--
                        <generator class="native"></generator>
            -->
        </id>
        <property name="name"/>
        <property name="remark"/>
    </class>
</hibernate-mapping> 

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

<?xml version="1.0" encoding="utf-8" ?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值