`

Hibernate 手册 第一章 Hibernate入门

    博客分类:
  • J2EE
阅读更多

 

第一章 Hibernate入门

1.1 前言

       需要JavaSQL知识

       源码位于 doc/reference/tutorial

 

1.2 第一部分 第一个Hibernate应用程序

       保存我们希望参加的活动(events)和这些活动主办方的相关信息。

      

       获得需要的Java库文件,并吧/lib目录中需要的库文件拷到开发目录下的.lib目录

      

 

hibernate3.jar

dom4j-1.6.1.jar

commons-logging-1.0.4.jar

commons-collections-2.1.1.jar

cglib-2.1.3.jar

asm.jar

jta.jar

ant-antlr-1.6.5.jar

asm-attrs.jar

ehcache-1.2.3.jar

log4j-1.2.11.jar

 

 

mysql-connector-java-5.0.4-bin.jar

 

       这是Hibernate运行所需要的最小库文件集合。

       提示:Log4j不是必须的

 

1.2.1 第一个class

       第一个持久化类,也称简单JavaBean类:

 

package events;

 

import java.util.*;

 

public class Event {

    private Long id;

 

    private String title;

    private Date date;

 

    public Event() {}

 

    public Long getId() {

        return id;

    }

 

    private void setId(Long id) {

        this.id = id;

    }

 

    public Date getDate() {

        return date;

    }

 

    public void setDate(Date date) {

        this.date = date;

    }

 

    public String getTitle() {

        return title;

    }

 

    public void setTitle(String title) {

        this.title = title;

    }

   

 

    private Set participants = new HashSet();

 

    public Set getParticipants() {

        return participants;

    }

 

    public void setParticipants(Set participants) {

        this.participants = participants;

    }

 

}

 

       属性

访问级别设成私有的

              提示:    H可以直接访问这些field,而使用方法的好处是提供了重构是的健壮性。

                            通过反射机制来实例化这个类的对象,需要提供一个无参构造器。

 

       标识

              id属性持有唯一的标识符的值,使用H提供的特性都需要提供一个标识。

              如果使用H分配id,则将setter方法的访问级别声明为private,这样在对象保存时可以为他分配标识符值。

              提示:H可直接访问public,privateprotected的访问方法和filed

 

       持久化类

              要求有无参的构造器,因为H必须使用Java反射机制来创建对象。

提示:    构造器可以是private,当生成运行时代理的时候要求至少是package级别访问控制,

                            这样没有字节码指令的情况下,从持久类里获取数据会更有效率。

 

 

1.2.2       映射文件

       H通过映射文件可以去加载和存储持久化类的对象。

       映射文件告诉H应该访问数据库里那个表及应该使用表里的那些字段。

 

       映射文件基本结构

 

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

 

<hibernate-mapping>

 

    ...

 

</hibernate-mapping>

 

       可以查看DTD所有元素和属性,以及他们的缺省值以及注释。

       H不会从web加载DTD文件,会先在应用程序的classpath中查找。

       DTD文件包括在hibernate3.jar

 

      

       hibernate-mapping标签之间,含有一个class元素,用来把类映射到SQL数据库里的表。

       这样就把类(Events)的对象持久化到数据库的表(EVENTS),以及怎样从EVENTS表加载到Events类的对象。每个实例对应着数据库表中的一行。

 

<hibernate-mapping>

 

    <class name="events.Event" table="EVENTS">

       ...

    </class>

 

</hibernate-mapping>

 

 

       唯一标识符属性到数据库表的映射。配置由Hibernate的标识符生成策略来产生代理主键字段。

 

<hibernate-mapping>

 

    <class name="events.Event" table="EVENTS">

        <id name="id" column="EVENT_ID">

            <generator class="native"/>

        </id>

    </class>

 

</hibernate-mapping>

 

       <id .. > id元素是标识符属性的声明

name="id" 声明了Java的属性名字,H会使用getId()/setId()来访问。

              column="EVENT_ID"  告诉H使用EVENTS表的哪个字段作为主键。

       <generator .. />  指定标识符的生成策略

              class="native"  根据已配置的数据库(方言)自动选择最佳的标识符生成策略

      

       持久化属性的声明      

 

<hibernate-mapping>

 

    <class name="events.Event" table="EVENTS">

        <id name="id" column="EVENT_ID">

            <generator class="native"/>

        </id>

        <property name="date" type="timestamp" column="EVENT_DATE"/>

        <property name="title"/>

 

        <set name="participants" table="PERSON_EVENT" inverse="true">

            <key column="EVENT_ID"/>

            <many-to-many column="PERSON_ID" class="events.Person"/>

        <span style='fon

分享到:
评论

相关推荐

    hibernate中文开发手册

    本章是面向Hibernate初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解的方式逐步开发。 本章面向Hibernate初学者,但需要Java和SQL知识。它是在Michael ...

    Hibernate v3.2中文参考手册

    &lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 &lt;br&gt;阅读第 2 章 体系结构(Architecture)来理解...

    Hibernate3.2官方中文参考手册

    &lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 &lt;br&gt;阅读第 2 章 体系结构(Architecture)来理解...

    spring2.0技术手册 (扫描版)

    第6章Hibernate与Spring 第7章SpringWebMVC框架 第8章View层方案、Web框架整合 第9章API封装 第10章项目:Spring在线书签 Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以...

    J2EE学习笔记(J2ee初学者必备手册)

    第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    Java/JavaEE 学习笔记

    第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六...

    《Java Web编程宝典(十年典藏版)》光盘源码

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    Java Web编程宝典

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    ASP.NET编程宝典光盘源码

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    ASP.NET编程宝典(十年典藏版)》光盘源码1

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    《ASP.NET编程宝典(十年典藏版)》光盘源码2

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    antlr4权威指南

     本部分的最后一章解决了一些充满挑战的识别难题,例如识别XML和Python中的上下文相关的换行符。  第四部分是参考章节,详细列出了ANTLR语法元语言的所有规则和ANTLR运行库的用法。  完全不了解语法和语言识别...

Global site tag (gtag.js) - Google Analytics