Hibernate의 Annotation 버전 Hello world 인스턴스

본고는 Hibernate의 Annotation 버전인 Hello world의 실현 방법을 실례로 다루고 있다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다.
도입해야 할 가방:hibernate-commons-annotations-4.0.4.Final.jar
왜냐하면 내가 사용하는 것은:hibernate-release-4.3.5.Final, Required 디렉터리에 있습니다.
bean:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="teacher")
public class Teacher {
  private int id;
  private String name;
  private String title;
  @Id
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  @Column(name="name")
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @Column(name="title")
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
}

대응하는 hibernate.cfg.xml 파일:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
    <property name="connection.username"></property>
    <property name="connection.password"></property>
    <!-- JDBC connection pool (use the built-in) -->
    <!--
    <property name="connection.pool_size">1</property>
     -->
    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>
    <!-- Disable the second-level cache -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>
    <!-- Drop and re-create the database schema on startup -->
    <!--
    <property name="hbm2ddl.auto">update</property>
    -->
    <mapping resource="com/hibernate/model/Student.hbm.xml"/>
    <mapping class="com.hibernate.model.Teacher"/>
  </session-factory>
</hibernate-configuration>

테스트 클래스:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.huxing.hibernate.model.Student;
import com.huxing.hibernate.model.Teacher;
public class StudentTest {
  public static void main(String[] args) {
    Student a = new Student();
    a.setId(123);
    a.setAge(32);
    a.setName("hello hibernate!");
    Teacher tea = new Teacher();
    tea.setId(4);
    tea.setName("mysql");
    tea.setTitle("high");
    Configuration cfg = new AnnotationConfiguration();
    SessionFactory cf = cfg.configure().buildSessionFactory();
    Session session = cf.openSession();
    session.beginTransaction();
    session.save(tea);
    session.getTransaction().commit();
    session.close();
    cf.close();
  }
}

주의: 코드가 패키지 경로를 생략했습니다.
기타 사항:
1. 주석은 속성에 붙일 수도 있고 get 방법에 붙일 수도 있다.
2. 주해된 맵핑과 xml이 설정한 xml의 차이!하나는 리소스이고, 하나는class입니다.
본고에서 기술한 것이 여러분의 Hibernate 프레임워크 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기