`
missall
  • 浏览: 127687 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate资料

阅读更多

1.        Hibernate 简介

Hibernate 是非常流行的对象 - 关系映射工具。

2.        什么是 ORM 映射

         未命名1.bmp

ORM Object Relational Mapping )简单的说,就是对象与关系的映射,对于实际应用来讲,对象一般指面向对象中的对象,关系指关系型数据库,对于我们具体的项目来说,就是将 java 中的对象与关系型数据库( oracle mysql )中的表联系起来 Hibernate 是很强大的工具,当我们将建立联系的工作交给它后,就可以专注于与 java 中的对象打交道,而不需要知道它代表的是哪些表。

3.         POJO (用来映射数据库中的表,构建我们的持久化层)

一个典型的 POJO

public class Person{

       private long id;

       private String name;

       public void setId(BigDecimal value) {

              this.id = value;

       }

       public BigDecimal getId() {

              return this.id;

       }

       public void setName(String value) {

              this.name = value;

       }

       public String getName() {

              return this.name;

       }

}

表面上看来,一个 POJO 与一个普通的 JavaBean 没有什么区别,我们需要了解的是如何让 POJO 和一个表建立联系。

4.        建立联系的桥梁,映射文件 XML

一个典型的映射文件 Person.hbm.xml 注意他的命名方式,一般是类名+ 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">

 

<hibernate-mapping schema="SCOTT" package="mapping">

  <class name="Person" table="PERSON" >

    <id name="id" type="long" unsaved-value="null">

      <column name="ID" not-null="true" index="SYS_C004143"/>

      <generator class="native"/>

    </id>

    <property name="name" type="string" column="NAME"/>

  </class>

</hibernate-mapping>

注意红线部分代表了 Pojo 对应的是那张表。

一般来说映射文件放在和 Pojo 同一个包

5.        和数据库的连接

Hibernate 配置文件,可以采用 xml 或者 property 文件。

一个典型的配置文件

<?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">

<hibernate-configuration>

    <session-factory>

  <property name="hibernate.connection.username">toposs</property>

     <property name="hibernate.connection.password">toposs</property>

      <property name="hibernate.dialect">

org.hibernate.dialect.Oracle9Dialect

</property>

     <property name="hibernate.connection.url">

jdbc:oracle:thin:@172.16.1.3:1521:orcl

</property>

<property name="hibernate.connection.driver_class">

oracle.jdbc.driver.OracleDriver

</property>

     </session-factory>

</hibernate-configuration>

6.        Hibernate Eclipse 中快速应用

6.1         新建一个工程,将 Hibernate3.jar 和你需要的数据库驱动添加到工程 path

6.2         在数据库中新建一个名为 person 的表。
未命名2.bmp

6.3         在工程的默认 package 下建立一个 POJO Person 类与表 person 对应。

public class Person{

 

       private long id;

 

       private String name;

 

 

       public void setId(long value) {

              this.id = value;

       }

 

 

       public long getId() {

              return this.id;

       }

 

 

       public void setName(String value) {

              this.name = value;

       }

 

 

       public String getName() {

              return this.name;

       }

}

6.4         现在我们来建立一个 xml 的映射文件( 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">

 

<hibernate-mapping>

  <class name="Person" table="PERSON">

    <id name="id" type="long" unsaved-value="0">

      <column name="ID" not-null="true"/>

      <generator class="increment"/>

    </id>

    <property name="name" type="string" column="NAME"/>

  </class>

</hibernate-mapping>

6.5         建立 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">

<hibernate-configuration>

    <session-factory>

        <property name="hibernate.connection.username">scott</property>

<property name="hibernate.connection.password">tiger</property>

<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>

<property name="hibernate.connection.url">jdbc:oracle:thin:@172.16.1.2:1521:rsora</property>

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

       <property name="hiberante.show_sql">true</property>

       <mapping resource="Person.hbm.xml" />

    </session-factory>

</hibernate-configuration>

注意红线的部分将 mapping 文件写到 resource 中,如果有多个文件,要写多个文件,文件 的路径是对于根目录的绝对路径

6.6         项目结构图未命名3.bmp

6.7         所有准备工作都已经做好了 , 下面在 Person 中建立一个 main 方法,我们做一个简单的插入数据库的工作

6.7.1   Main 函数的代码

Public static main(String[] args){

Configuration config=new Configuration().configure();

        SessionFactory factory=config.buildSessionFactory();

        Session session=factory.openSession();

        Transaction tran=session.beginTransaction();

        Person p=new Person();

        p.setName("test");

        session.save(p);

       

        tran.commit();

        session.close();

}

6.7.2   点击 Run As Java Application ,运行这个 main 函数

6.7.3   然后查看数据库

未命名4.bmp
我们发现数据库已经新增加了一条记录

 

7.        最常见的关联关系,一对多关联。

7.1         用父子关系说明一对多(多对一关联)

在实际应用中,很少有一个表是独立的,大部分情况是表和表之间是有关联关系的,其中最常见的是一对多(多对一关联)。

父亲和儿子是典型的一对多关系,一个父亲有多个儿子,儿子只有一个父亲。在这个关系中,父亲是一方,儿子是多方。

7.2         在数据库中建立父子关系。

建表的 sql 语句:

CREATE TABLE father (

        Father_id          INTEGER NOT NULL,

       name        VARCHAR(10) NULL,

       PRIMARY KEY (father_id)  );

CREATE TABLE son (

       Son_id          INTEGER NOT NULL,

       Son_name        VARCHAR(10) NULL,

            Father_ID         INTEGER NULL

       PRIMARY KEY (son_id),

       FOREIGN KEY (father_id)

                             REFERENCES father

);

7.3         建立的表的结构

儿子的表
未命名5.bmp

父亲的表
未命名6.bmp

7.4         建立 POJO

同样在我们的工程的 defalt package 下面新建类 Father Son

7.4.1   Father

public class Father {

 

    private long   fid;

 

    private String name;

 

    private Set    sons = new HashSet();

分享到:
评论

相关推荐

    hibernate 资料hibernate 资料hibernate 资料

    ### Hibernate核心知识点详解 #### Hibernate概述 - **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够...

    hibernate资料

    hibernate 深入 连接 关联级映射,源码解析,spring 与hibernate的配置深入原理

    Hibernate 资料

    Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將 Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係, Hibernate 提供了這個過程中自動對應...

    hibernate资料 3.6.6版本

    标题提及的是“hibernate资料 3.6.6版本”,这意味着我们要探讨的是关于Hibernate ORM框架的特定版本,即3.6.6。Hibernate是一个广泛使用的Java对象关系映射(ORM)工具,它允许开发人员用面向对象的方式来处理...

    传智博客~hibernate 资料

    【标题】"传智博客~hibernate 资料" 涉及的主要知识点是Hibernate,这是一个开源的对象关系映射(ORM)框架,用于简化Java应用与数据库之间的交互。Hibernate提供了一种在Java对象和关系数据库之间进行数据转换的...

    ejb+hibernate资料 ejb+hibernate资料

    总的来说,这个压缩包资料集提供了一个深入学习EJB3和Hibernate的基础,涵盖了这两个框架的主要概念、配置以及使用方法。对于希望在企业级Java应用开发中掌握这些核心技术的开发者来说,这是一份非常宝贵的资源。...

    jsp中Hibernate资料

    标题:“jsp中Hibernate资料” 描述:“适合初学者使用的好东西” 标签:“Hibernate jsp” 从给定的文件信息中,我们可以提炼出以下关于Hibernate在Java Server Pages (JSP)环境中应用的重要知识点: ### ...

    hibernate学习资料大全

    【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...

    培训机构hibernate资料ppt

    在这个“培训机构hibernate资料ppt”中,我们可以通过四次课程的学习,深入理解Hibernate的核心概念和实际应用。 **第一次课:Hibernate基础** 在初次接触Hibernate时,我们将学习其基本概念,包括什么是ORM、为...

    经典Spring-Hibernate资料

    在"经典Spring-Hibernate资料"这个压缩包中,可能包含了关于这三个框架的教程、手册、示例代码以及配置文档等内容。Spring的学习资料可能涵盖了Spring的核心概念,如依赖注入、AOP,以及Spring Boot、Spring Cloud等...

    达内科技hibernate资料课件全集+源码

    总结,达内科技的Hibernate资料课件全面覆盖了Hibernate的各个方面,从基础到高级,理论结合实践,源码辅助理解,是学习和掌握Hibernate的宝贵资源。通过深入学习,开发者不仅可以提升数据库操作技能,还能在项目...

    struts+spring+hibernate资料

    ### Struts + Spring + Hibernate 资料 #### 1. Hibernate 的并发机制与处理并发问题的方法 **并发机制概述**: - **Session 对象的线程安全性**:Hibernate 的 Session 对象并不是线程安全的,这意味着对于每一...

    hibernate 资料 教程。

    hibernate 资料 教程。很好的资料,分享给大家。 英文版

    Hibernate 中文api 等学习资料

    标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...

Global site tag (gtag.js) - Google Analytics