首頁 > Java > java教程 > Java Hibernate 框架的 ORM 機制是什麼?

Java Hibernate 框架的 ORM 機制是什麼?

王林
發布: 2024-04-17 14:39:02
原創
361 人瀏覽過

Hibernate是一個Java ORM框架,用於在Java物件和關聯式資料庫之間建立映射。其ORM機制包含以下步驟:註解/配置:物件類別以註解或XML檔案標記,指定其對應的資料庫表和列。會話工廠:管理Hibernate與資料庫的連線。會話:表示與資料庫的活動連接,用於執行查詢和更新操作。持久化:透過save()或update()方法將資料儲存到資料庫中。查詢:使用Criteria和HQL定義複雜查詢來檢索資料。

Java Hibernate 框架的 ORM 机制是什么?

Java Hibernate 框架ORM 機制

簡介

Hibernate 是一個流行的Java 物件關聯映射(ORM) 框架,它允許在Java 物件和關聯式資料庫之間建立無縫的映射。 ORM 的作用是管理將物件狀態轉換成資料庫記錄的過程,反之亦然,簡化了資料存取程式碼的開發和維護。

ORM 機制

Hibernate 使用 Java 註解或 XML 設定檔來定義物件與資料庫表的對應。它透過以下關鍵步驟實作ORM:

  • 註解/配置:物件類別使用Hibernate 註解(例如@Entity@Table)或XML 設定檔進行標記,指定其對應到資料庫中的哪個表和列。
  • 會話工廠:會話工廠管理 Hibernate 與資料庫之間的連線。
  • 會話:會話表示與資料庫的活動連接,用於執行查詢和更新操作。
  • 持久化:要將資料儲存到資料庫中,物件必須透過 save()update() 方法持久化。
  • 查詢:CriteriaHQL(Hibernate 查詢語言)用於定義複雜查詢,擷取資料。

實戰案例

我們建立一個Java 類別Employee 來表示資料庫中的員工表:

@Entity
@Table(name = "employees")
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    private int salary;

    // 省略getter、setter和构造方法
}
登入後複製

main() 方法中,我們使用Hibernate 設定檔(hibernate.cfg.xml) 建立一個會話工廠,開啟一個會話,儲存一個Employee 對象,並檢索所有員工:

public static void main(String[] args) {
    // 创建会话工厂
    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

    // 打开会话
    Session session = sessionFactory.openSession();
    session.beginTransaction();

    // 保存一个Employee对象
    Employee employee = new Employee();
    employee.setName("John Doe");
    employee.setSalary(10000);
    session.save(employee);

    // 查询所有Employee对象
    List<Employee> employees = session.createQuery("from Employee", Employee.class).list();

    // 打印员工信息
    for (Employee emp : employees) {
        System.out.println(emp.getName() + " - " + emp.getSalary());
    }

    // 提交事务并关闭会话
    session.getTransaction().commit();
    session.close();
}
登入後複製

以上是Java Hibernate 框架的 ORM 機制是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板