Hibernate是一種Java語言下的物件關係對映(ORM)解決方案。它是使用GNU寬通用公共許可證發行的自由、開源的軟體。它為物件導向的領域模型到傳統的關係型資料庫的對映,提供了一個使用方便的持久化框架。
Spring Hibernate
integration
Hibernate validation
# A framework for
persisting / saving Java objects in a database
Ø Handles all of low-level SQL
Ø Minimizes the amount of JDBC code you have
to develop
Ø Provide object to relational mapping (java
class and db table)
Ø session.save, session.get,
session.createQuery(“from Student”)
# Hibernate and JDBC
(use jdbc for all database communication)
# Dev Process
Ø d
# Entity Class
Ø Java class that is mapped to a database
table
Ø Need to tell hibernate how to map this
class to actual table and also how to map fields to the actual columns
Annotation
# @Entity
#
@Table(name=student)
# @Id
# @Column(name=id)
#SessionFactory
#Session
Default Hibernate
Configuration File (hibernate.cfg.xml)
Factory.getCurrentSession
Ø Use session object to save / retrieve Java
objects
Session.beginTransaction()
Session.save(tempStudent)
Session.getTransaction().commit();
Factory.close
HQL (Hibernate Query
Language)
Session.createQuery
@ OneToOne
@
JoinColumn(name=instructor_detail_id)
Private
InstructorDetail instructorDetail;
CascadeType
Ø Default no operations are cascaded
Ø PERSIST
Ø REMOVE
Ø REFRESH
Ø Detached
Ø MERGE
Ø ALL
@OneToOne(cascade=CascadeType.ALL)
@OneToMany(
fetch=FetchType.LAZY, cascade=CascadeType.ALL)
LAZY vs Eager
Uni-Directional vs
Bi-Directional
@ManyToOne
@JoinColumn(name=instructor_id)
@OneToMany(mappedBy=instructor)
@ManyToMany
@JoinTable (
Name = “course_student”
joinColumns =
@JoinColumn(name=course_id)
inverseJoinColumns=@JoinColumn(name=student_id);
沒有留言:
張貼留言