Hibernate之Annotation(注解的方式,非映射)
在hibernate 3.0之后,可以建立一个符合JPA标准的Annotation,以hibernate3.3.2GA为例
Annotation 以 hibernate Annotation 3.3.0GA为例
我们需要在根目录下面获取:
hibernate-annotations.jar //反正是必须的包
我们需要在Annotation 3.3.0GA内的lib文文件夹下面获取:
1、hibernate-commons-annotations.jar //进行反射的时候需要的一个包
2、ejb3-persistence.jar //符合了JPA标准的这样的Annotation的实现
实际上,hibernate就是JPA的一种实现之一,所以,Annotation并不依赖于hibernate。
添加完所需要的3个包之后,现在需要hibernate的必需包共有11个:(包括现在的3个)
然后,我们定义好我们所需要的实体类,比如,Teacher.java 代码如下:
package com.cyh.hibernate.model;
import javax.persistence.Entity; //JPA标准
import javax.persistence.Id;
@Entity //用于标记需要映射的实体类
public class Teacher {
private int id;
private String name;
private String title;
//主键,最好的做法就是在get方法上面添加@Id,这个是因为get方法上面的名称一般都是主键
@Id
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 String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
然后,再在我们的hibernate.cfg.xml配置文件中的<session-factory>标签添加映射关系,原先通过hbm方法的映射是需要具体的路径的,而现在我们需要做的是,仅仅是:
<!-- 这个我们就是为了要告诉别人,有一个类,是被我加了映射了,是我们的teacher实体类 -->
<mapping class="com.cyh.hibernate.model.Teacher"/>
这样,我们就可以通过Annotation的方法来对数据库进行操作了,唯一与hbm映射文件有区别的是,就是代码:Configuration cfg = new Configuration();
变成了Configuration cfg = new AnnotationConfiguration();这个也是一个关键的地方。