第一章 Hibernate入门
1.1 前言
需要Java和SQL知识
源码位于 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,private和protected的访问方法和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初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解的方式逐步开发。 本章面向Hibernate初学者,但需要Java和SQL知识。它是在Michael ...
<br>阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 <br>阅读第 2 章 体系结构(Architecture)来理解...
<br>阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 <br>阅读第 2 章 体系结构(Architecture)来理解...
第6章Hibernate与Spring 第7章SpringWebMVC框架 第8章View层方案、Web框架整合 第9章API封装 第10章项目:Spring在线书签 Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以...
第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
本部分的最后一章解决了一些充满挑战的识别难题,例如识别XML和Python中的上下文相关的换行符。 第四部分是参考章节,详细列出了ANTLR语法元语言的所有规则和ANTLR运行库的用法。 完全不了解语法和语言识别...