Hibernate之Annotation(注解的方式,非映射)

时间:2021-07-06 19:47:59

  在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();这个也是一个关键的地方。