Hibernate的第一個程序

    Hibernate是一個開源的對象關係映射框架,對JDBC進行非常輕量級的封裝。它將POJO與數據表建立了映射關係,是一個全自動的ORM框架。
   Hibernate可以自動生成SQL語句並且自動執行SQL,可以用面向對象思想來操縱數據庫。


   在開始第一個hibernate小程序之前我們有必要熟悉一下hibernate的五大對象。
Configuration: Configuration 類負責管理 Hibernate 的配置信息
SessionFactory:
1)針對單個數據庫映射關係經過編譯後的內存鏡像,是線程安全的。
2)SessionFactory 對象一旦構造完畢,即被賦予特定的配置信息
3)SessionFactory是生成Session的工廠
4)構造 SessionFactory 很消耗資源,一般情況下一個應用中只初始化一個 SessionFactory 對象。
5)Hibernate4 新增了一個 ServiceRegistry 接口,所有基於 Hibernate 的配置或者服務都必須統一向這個 ServiceRegistry 註冊後才能生效
Session:
1)Session 是應用程序與數據庫之間交互操作的一個單線程對象,是 Hibernate 運作的中心,所有持久化對象必須在 session 的管理下纔可以進行持久化操作。此對象的生命週期很短。Session 對象有一個一級緩存,顯式執行 flush 之前,所有的持久層操作的數據都緩存在 session 對象處。相當於 JDBC 中的 Connection。
2)持久化類與 Session 關聯起來後就具有了持久化的能力。
Transaction:
允許應用程序定義工作單位,同時保持底層事務實現的抽象。
Criteria:
criteria是通過組合criteria對象檢索實體的一個簡化的接口,session是一個標準的工廠Criteria實例通常是通過工廠的方法來限制。


   上面對hibernate和其常用對象做了一個簡單的介紹,下面就開始我們的第一個小程序吧。
一、hibernate開發環境準備
1、新建一個web工程,將…….\hibernate-release-4.2.4.Final\lib\required下面的所有jar包導入到web工程lib目錄下。
這裏寫圖片描述
2、加入數據庫驅動包,我這裏用的數據庫是mysql驅動包是:
mysql-connector-java-5.1.7-bin.jar
二、開始編寫第一個hibernate程序
1、新建hibernate.cfg.xml文件並編寫其基本信息(主要是配置sessionFactory,相當於connection,起到鏈接數據庫的作用)
這裏寫圖片描述
2、在mysql數據庫客戶端新建一個數據表
這裏寫圖片描述
3、編寫一個實體類,該實體類屬性與數據表中的字段名或者別名相映射
這裏寫圖片描述
4、新建實體類的數據庫映射文件XXXX.hbm.xml
這裏寫圖片描述
5、將實體類的數據庫映射文件引入到hibernate配置文件中
這裏寫圖片描述
6、新建一個測試類,如下

package com.wxf.hibernate.test;
import java.util.UUID;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
import com.wxf.hibernate.entity.Student;
public class HelloworldTest {
    @Test
    public void test() {
        //1.創建一個SessiionFactory對象
                SessionFactory sessionFactory=null;
                //1).創建Configuration對象:對應hibernate的基本信息和對象關係映射信息
                  Configuration configuration=new Configuration().configure();
                //2).創建一個ServiceRegistry對象:hibernate的任何配置和服務都需要在該對象中註冊後纔能有效
                  ServiceRegistry serviceRegistry=
                          new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                                                      .buildServiceRegistry();
                 //3).基於以上幾個對象創建SessionFactory對象
                sessionFactory=configuration.buildSessionFactory(serviceRegistry);

                //2.創建一個Session對象
                Session session=sessionFactory.openSession();
                //3.開啓事務
                Transaction transaction=session.beginTransaction();
                //4.執行操作
                Student student=new Student(UUID.randomUUID().toString(),"wangxiaofei",22,"male","13190241");
                session.save(student);

                //5.提交事務
                transaction.commit();
                //6.關閉Session對象
                session.close();
                //7.關閉SessionFactory對象
                sessionFactory.close();
    }
}

運行結果如下:
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章