`

Hibernate之---实体映射

阅读更多
转载:http://hi.baidu.com/javajavajava/blog
此示例使用myeclipse5.5+Sql 2000数据库

数据库脚本:
CREATE TABLE person (
id int NOT NULL    PRIMARY KEY ,
firstname varchar (20) NOT NULL,
lastname varchar (20) NOT NULL ,
address varchar (20) NOT NULL ,
zipcode varchar (6) NOT NULL ,
tel varchar (20)
) 

hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
             "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
             "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                      -->
<hibernate-configuration>

<session-factory>
<property name="connection.username">sa</property>
<property name="connection.url">
    jdbc:microsoft:sqlserver://localhost:1433
</property>
<property name="dialect">
     org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">mysql2000</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">
     com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<property name="show_sql">true</property>
<mapping resource="org/myhibernate/demo01/Person.hbm.xml" />

</session-factory>

</hibernate-configuration>

Person.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.myhibernate.demo01.Person" table="person"
    schema="dbo" catalog="mldn">
     <id name="id" type="java.lang.Integer">
      <column name="id" />
      <generator class="assigned" />
     </id>
     <component name="name" class="org.myhibernate.demo01.Name">
      <property name="firstname" type="java.lang.String">
       <column name="firstname" length="20" not-null="true" />
      </property>
      <property name="lastname" type="java.lang.String">
       <column name="lastname" length="20" not-null="true" />
      </property>
     </component>
     <component name="contact"
      class="org.myhibernate.demo01.Contact">
      <property name="address" type="java.lang.String">
       <column name="address" length="20" not-null="true" />
      </property>
      <property name="zipcode" type="java.lang.String">
       <column name="zipcode" length="6" not-null="true" />
      </property>
      <property name="tel" type="java.lang.String">
       <column name="tel" length="20" />
      </property>
     </component>
</class>
</hibernate-mapping>


Person.java

package org.myhibernate.demo01;

public class Person {

private int id;
private Name name;
private Contact contact;
// Getter/Setter方法
}

Name.java
package org.myhibernate.demo01;

public class Name {

private String firstname;

private String lastname;

// Getter/Setter方法
}

Contact.java
package org.myhibernate.demo01;

public class Contact {

private String address;

private String zipcode;

private String tel;

// Getter/Setter方法

}


PersonDAO.java
package org.myhibernate.demo01;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class PersonDAO {

private Session session;

public PersonDAO() {
     Configuration config = new Configuration().configure();
     SessionFactory factory = config.buildSessionFactory();
     this.session = factory.openSession();
}

public void insert(Person p){
     this.session.save(p);
     this.session.beginTransaction().commit();
}
}

TestPerson.java

package org.myhibernate.demo01;

public class TestPerson {
public static void main(String[] args) {
     Person p = new Person();
     PersonDAO pdao = new PersonDAO();
     Name name = new Name();
     Contact contact = new Contact();
  
     name.setFirstname("胡");
     name.setLastname("千好");
  
     contact.setAddress("云南宣威");
     contact.setTel("13888888888");
     contact.setZipcode("655408");
  
     p.setId(1);
     p.setContact(contact);
     p.setName(name);
  
     pdao.insert(p);
}
}

分享到:
评论

相关推荐

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    在Hibernate中,每个Java实体类通常对应一个`.hbm.xml`映射文件,其中包含了对象-关系的映射信息。例如,`&lt;class&gt;`元素表示一个Java类,它的`name`属性是类的全限定名,`table`属性指定对应的数据库表。`&lt;id&gt;`元素...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605.zip

    在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而Eclipse作为主流的Java集成开发环境,其丰富的插件生态使得开发效率得以提升。"hibernatetools-Update-4.1.1.Final_...

    HibernateTools-3.2.4

    1. **逆向工程(Reverse Engineering)**:能够从现有的数据库结构自动生成Hibernate实体类、映射文件(.hbm.xml)以及DAO接口和实现类。这对于快速构建基于Hibernate的应用程序尤其有用。 2. **代码生成器(Code ...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605

    - **逆向工程**:可以从现有的数据库生成Hibernate实体类、映射文件和配置文件,极大地提高了开发效率。 - **代码生成**:自动生成DAO层、Service层代码,减轻了手动编码的工作量。 - **数据库操作**:支持直接在...

    hibernate-release-5.2.10

    1. **实体管理**:Hibernate通过@Entity注解将Java类映射为数据库表,通过@Id指定主键,使得对象可以直接对应到数据库记录。 2. **配置**:Hibernate的配置文件(如hibernate.cfg.xml)中需要设置数据库连接信息、...

    hibernate-commons-annotations-5.0.1.Final.jar

    4. `org.hibernate.boot.model`和`org.hibernate.boot.model.source`:这两个包包含了模型构建和源代码解析的相关类,用于构建实体类的元模型,是Hibernate映射的基础。 5. `org.hibernate.boot.registry`:这部分...

    hibernate many-to-many级联保存,级联更新,级联删除

    在Hibernate配置文件(如hibernate.cfg.xml)中,你需要为实体类定义映射文件(如Student.hbm.xml和Course.hbm.xml)。在这些映射文件中,使用`&lt;many-to-many&gt;`标签来定义关系。例如: ```xml &lt;!-- Student.hbm.xml...

    HibernateTools-3.2.4.Beta1-R200810311334.zip

    1. **代码生成器**:能够自动生成基于Hibernate的实体类、DAO层和配置文件,减少了手动编写大量重复代码的工作量,提高了开发效率。 2. **逆向工程**:可以从现有的数据库中生成Hibernate映射文件和Java类,使已有的...

    hibernate-release-4.3.10.Final.zip

    Hibernate,作为Java领域最著名的对象关系映射(ORM)框架之一,自诞生以来就深受开发者喜爱。本次我们聚焦于`hibernate-release-4.3.10.Final`版本,这是一个稳定且功能丰富的版本,为开发者提供了强大的数据持久化...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键,另一个实体作为关联目标。这种关联方式可以分为单向关联和双向关联两种。 单向关联是指一个实体作为外键,关联到另一个...

    Hibernate one-to-many / many-to-one关系映射

    "Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...

    hibernate-release-5.0.7.Final的所有jar包

    下载并使用这些jar包后,开发者可以通过配置文件设置数据库连接、实体映射,并使用Hibernate API来操作数据库。例如,创建SessionFactory、开启Session、执行查询、保存或更新实体等。同时,Hibernate还支持第二级...

    hibernate-core-5.0.11.Final.jar

    Hibernate,作为Java领域中最著名的对象关系映射(ORM)框架之一,极大地简化了数据库操作,使得开发者能够以面向对象的方式处理数据。本文将重点探讨`hibernate-core-5.0.11.Final.jar`的核心源码,帮助读者深入...

    hibernate-jpa-2.1-api-1.0.0.final.jar.zip

    其中,Hibernate作为一款功能强大的ORM框架,极大地简化了Java对象与数据库表之间的映射关系处理。而JPA(Java Persistence API)是Java EE规范的一部分,为ORM提供了标准的接口。`hibernate-jpa-2.1-api-1.0.0....

    hibernate-extensions和Middlegen-Hibernate

    总结来说,hibernate-extensions和Middlegen-Hibernate是提高Hibernate开发效率的利器,它们通过自动化的方式,帮助开发者快速生成数据库映射文件和Java实体类,使得开发工作更加高效和便捷。合理利用这两个工具,...

    hibernate实体映射文件字段设置默认值

    ### Hibernate实体映射文件字段设置默认值 在Hibernate框架中,实体映射文件(通常为`.hbm.xml`)用于定义Java对象与数据库表之间的映射关系。这其中包括了属性到数据库表列的映射、主键生成策略、以及一些高级特性...

    hibernate--- jar包

    9. **一对多、多对一、多对多关系映射**: Hibernate可以轻松处理复杂的数据关系,如实体类之间的关联映射,通过@OneToMany、@ManyToOne、@ManyToMany等注解实现。 10. **事件监听和拦截器**: Hibernate支持事件监听...

    hibernate-release-5.3.2.Final

    Hibernate ORM,作为Java领域最著名的对象关系映射框架之一,自诞生以来就深受开发者喜爱。2018年7月5日,Hibernate发布了其最新版本——5.3.2.Final,带来了诸多改进和新特性,为开发者提供了更为高效、稳定的持久...

    Hibernate-extensions 完整安装包

    Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要讨论的Hibernate-Extensions。这个...

Global site tag (gtag.js) - Google Analytics