一 第一个应用实例
1 .搭建环境:新建一个名为HibernateDemo 的java 工程,并导入Hibernate 的jar 包,特别要注意除了导入lib 下的jar 包还需导入hibernate3.jar 核心jar 包。 由于涉及数据库操作,还应导入mysql 驱动包。
2 .简述Hibernate 的作用:ORM :Object Relational Mapping ,对象关系映射。将java 程序中的对象自动持久化到关系数据库中。而Hibernate 的作用好比就是在java 对象与关系数据库之间的一座桥梁,它主要负责两者之间的映射。在Hibernate 内部封装了JDBC 技术(但只是一个轻量级的封装,因而可以让程序设计人员更方便的以面向对象的思想操纵数据库),并向外提供API 接口。
3 .建新一个名为User.java 的类,即是上面所说的java 对象。我们以后称这种类为实体类(或是持久化类) ,它的对象为实体对象(或是持久化对象) 。User.java 内容如下:
package com.asm.hibernate.domain;
import java.util.Date;
public class User {
private int id;
private String name;
private Date date;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
4 .编写配置文件:User.hbm.xml 。它和User.java 放在同一个包下。内容如下:
<?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
package="com.asm.hibernate.domain">
<class name="User">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
<property name="date"></property>
</class>
</hibernate-mapping>
此配置文件,是用来为User.java 进行配置的,我们以后称这种文件为实体配置文件 (或是持久化类映射文件) < class> 用来关联一个java 类,注意在前面的根元素下有一个package 属性,这样结合这个package 和class 标签下所指定的类名,就共同关联映射了一个java 类。 其实可以这样理解,每一个包下都有实体配置 文件,而这个配置文件开始的根元素package 指定了此文件所处的位置(或是说它所关联的包),根元素下可以有多个<class> 标签(查阅dtd 文件),它们可以分别来关联包下的java 类文件。
<class> 标签 ,一般建议至少有两个属性:name 属性用来关联一个java 类,比如这里关联了User 类;table 属性用来指定这个类所对应的表文件,如果不指定,系统会自动name 指定的类文件进行关联(比如上面实际是: < class name = "User" table = "user" > )
<class> 标签下的子标签 :
l <id> 子标签实际就是用来映射主键,<id> 下的name 就是用来指java 类中的id 属性,而它可以有一个 column 属性用来指定表中的主键。同时注意在此标签下有一个 < generator class = "native" /> 标签,它是用来指定主键的生成方式。
l <property> 子标签,就是用来指定java 类的属性映射到表中的一个字段,默认下此标签没有指定column 属性,即是说它会把name 所关联的属性名作为字段名。 如果不想java 类中的某些属性映射到表中,只要不用这个标签来关联这些属性即可。
l 总结:上面的<class><id><property> 的name 属性都分别指定了java 类,java 类的属性。而table ,column 是用来指定表,字段名
配置文件 :hibernate.cfg.xml 。它放在当前的项目的根目录下。内容如下: