`
cheng330301560
  • 浏览: 177862 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate中的组件映射

阅读更多

今天学习了Hibernate组件映射。

 

(1) 现在有一个表,要是字段很多,想把一些不是经常用到的字段分开的话,就需要一个类来存放这些字段。那如何去映射这之间的关系呢。

 

比如我们有一个用户表,里面的字段有 id(主键) ,name,password,email,phone,address.这时我把id,name,password经常用的放在User类中,而把剩下的放在Profile类中,当时User类中还用定义Profile并生成get/set方法,如果想通过Profile来访问User中的属性可以在Pfofile中定义User对象并生成get/set方法(这个不是必须的)

 

之后就是到User.hbm.xml设置

        <component name="profile(这个是在User类中定义的)" class="com.cheng.entry.Profile">
            <parent name="user"></parent>//这是方便在通过Profile中信息得到User类中的信息(如果上面红色设置了的话这个要有)
            <property name="email" type="java.lang.String">
                <column name="email" length="200"></column>
            </property>
            <property name="phone" type="java.lang.String">
                <column name="phone" length="200"></column>
            </property>
            <property name="address" type="java.lang.String">
                <column name="address" length="200"></column>
            </property>
            <property name="mobile" type="java.lang.String">
                <column name="mobile" length="200"></column>
            </property>
        </component>

 

完成这样的培训之后就可以正常的使用了。

    public void save()
    {
        Configuration config=new Configuration();
        config.configure();
        SessionFactory factory=config.buildSessionFactory();
        Session session=factory.openSession();
        User u=new User();
        Profile p=new Profile();
       
        u.setPassword("1234");
        u.setUsername("1234");
        p.setAddress("hainan");
        p.setEmail("220201560");
        u.setProfile(p);
       
        session.beginTransaction();
        session.save(u);
        session.getTransaction().commit();
    }
}

 

 

(2) 在下来讲一讲映射集合的内容

比如我们现在有两个表,属于一对多关系,分别为product表和img表

product中有的字段是id name price(float类型的)

img中有的字段是p_id(外键),filename,path

 

首先是分别生成对应的两个类Product类和Image类,在Pruduct中使用

    private Set<Image> images=new HashSet(0);来声明Image类并且生成对应的get/set方法

 

然后在Product.hbm.xml文件中

 

        <set name="images(对应Product类中的Image集合)" table="img(对应数据库中的表)">
        <key column="p_id(这个是对应img表中的那个外键)" foreign-key="id" not-null="true"></key>
        <composite-element class="com.cheng.entry.Image">
        <property name="filename" type="java.lang.String">
            <column name="filename" length="200"></column>
        </property>
        <property name="path" type="java.lang.String">
            <column name="path" length="200"></column>
        </property>
        </composite-element>
        </set>

 

简单的使用过程

 

    public void addProduct()
    {
        Configuration config=new Configuration();
        config.configure();
        SessionFactory factory=config.buildSessionFactory();
        Session session=factory.openSession();
        session.beginTransaction();
        Product p=new Product();
        p.setName("chengqing");
        p.setPrice(56.0);
        Image i1=new Image();
        Image i2=new Image();
        i1.setFilename("cheng");
        i1.setPath("eded");
       
        i2.setFilename("hua");
        i2.setPath("sdsa");
        p.getImages().add(i1);
        p.getImages().add(i2);
        session.save(p);
        session.getTransaction().commit();
    }
    public void printProduct()
    {
        Configuration config=new Configuration();
        config.configure();
        SessionFactory factory=config.buildSessionFactory();
        Session session=factory.openSession();
        session.beginTransaction();
        Product p=(Product) session.get(Product.class, new Integer(1));
        System.out.println(p.getName());
        Set<Image> images=p.getImages();
        for(Image img:images)
        {
            System.out.println(img.getFilename());
        }
    }

分享到:
评论

相关推荐

    Hibernate教程09_关系映射之组件映射

    在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射中的组件映射。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它允许开发人员以面向对象的方式处理数据库操作,极大地简化了数据层...

    hibernate组件映射

    在Hibernate中,组件映射是将一个类的实例作为另一个类的一个属性进行持久化的过程。这种映射方式有助于保持数据模型的整洁和逻辑性,同时也使得数据的管理更为高效。下面我们将详细探讨Hibernate的组件映射。 一、...

    Hibernate组件映射(annotation/xml)

    《Hibernate组件映射:Annotation与XML的融合》 在Java持久化领域,Hibernate是一个不可或缺的框架,它提供了强大的对象关系映射(ORM)能力。本文将深入探讨Hibernate中的组件映射,包括使用注解(Annotation)和...

    Hibernate组件映射代码详解

    Hibernate组件映射代码是Hibernate框架中的一种映射方式,用于将Java类转换为数据库表。组件关联映射是指在实体类中包含一个或多个组件类,组件类中包含多个属性,这些属性将被映射到数据库表中。 2. 组件关联映射...

    Spring+Hibernate 自动映射

    Hibernate作为ORM框架,在自动映射中扮演的角色包括: 1. **对象关系映射**:Hibernate通过XML映射文件或注解,将数据库表与Java对象对应起来,实现了数据库操作的对象化,使得开发者可以像操作普通Java对象一样操作...

    hibernate_reference中文文档.pdf

    这部分讲述了 Hibernate 中组件映射的技术。 - **8.1 依赖对象 (Dependent objects)**:介绍如何映射依赖对象。 - **8.2 在集合中出现的依赖对象 (Collections of dependent objects)**:讨论如何映射集合中的依赖...

    hibernate组件之间的关联

    组件映射允许将一个类的属性作为另一个类的一部分,类似于 Java 中的嵌套类。使用 @Component 或 @Embeddable 注解来标记可嵌入的组件类,然后在父类中使用 @Embedded 或 @EmbeddableId 来引用它们。 **联合主键...

    component(组件映射)

    本文将主要基于Hibernate中的组件映射进行讨论,因为文件名“hibernate_component_mapping”提示了我们这是关于Hibernate的内容。 首先,让我们理解什么是Hibernate。Hibernate是一个流行的开源Java库,它作为ORM...

    hibernate中的相关组件的介绍

    ### Hibernate中的相关组件介绍 #### 一、Hibernate配置文件(`hibernate.cfg.xml`) 在Hibernate框架中,默认的配置文件被命名为`hibernate.cfg.xml`。此配置文件是Hibernate初始化过程中的关键组成部分,它定义...

    springmvc+hibernate多表映射

    在多表映射中,Hibernate允许我们定义实体类之间的关系,如一对一、一对多、多对一和多对多关系。 在“一对多”关系中,一个实体可以对应多个其他实体。例如,一个部门可以有多个员工。在Hibernate中,我们通过在...

    hibernate对象关系映射实例

    Hibernate的核心组件包括配置文件、实体类、映射文件以及SessionFactory和Session接口。 1. **配置文件**:通常为`hibernate.cfg.xml`,用来配置数据库连接信息,如JDBC驱动、URL、用户名和密码等。 2. **实体类**...

    11 映射-- 组件映射(人类与姓名类)

    在IT行业中,组件映射是软件开发中的一个重要概念,特别是在对象关系映射(ORM)框架中,如Hibernate。本文将详细解析"11 映射-- 组件映射(人类与姓名类)"这一主题,结合标签"源码"和"工具",探讨如何在Hibernate中...

    Hibernate教程17_继承映射

    在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本教程主要探讨的是Hibernate中的“继承映射”特性,这是一项关键功能,它允许我们将复杂的类继承结构映射到数据库表中。通过继承映射,...

    Hibernate数据关联映射与继承策略

    在`java组件——hibernate.ppt`和`HibernatePractice`中,可能会包含关于如何在实际项目中设置这些映射和继承策略的示例。例如,如何配置 XML 映射文件(hbm.xml)或使用注解进行映射,以及如何在代码中操作这些关联...

    hibernate对象关系映射案例demo

    二、 Hibernate核心组件 1. Configuration:配置对象,用于加载hibernate配置文件和数据库连接信息。 2. SessionFactory:会话工厂,是线程安全的,用于创建Session对象。 3. Session:工作单元,负责执行CRUD操作,...

    hibernate中文参考文档

    7. 组件映射:当一个类的属性是由其他几个类的属性组合而成时,可以使用组件映射。这部分内容将说明如何实现组件映射,以组合不同的属性到一个复合对象。 8. 继承映射:Hibernate支持不同类型的继承映射策略,包括...

    Hibernate配置文件中映射元素详解

    组件映射允许将一个对象的属性组合成另一个对象,`&lt;component&gt;`元素定义了子对象与父对象表字段的映射。它支持`name`(属性名)、`class`(子对象类名)、`insert`、`update`和`access`属性。 ```xml |false" ...

    hibernate组建映射代码

    在实际应用中,我们还需要创建一个SessionFactory,它是Hibernate的核心组件,通过它来获取Session实例,进而进行CRUD操作。SessionFactory的创建通常在应用启动时完成,例如: ```java Configuration config = new...

Global site tag (gtag.js) - Google Analytics