Hibernate_day01

1、今天內容介紹

1 web內容回顧java

(1)javaee三層結構mysql

(2)mvc思想程序員

2 hibernate概述web

3 hibernate入門案例spring

4 hibernate配置文件sql

5 hibernate的api使用數據庫

2、WEB內容回顧

1.JavaEE三層結構

1 web層:struts2框架api

2 service層:spring框架session

3 dao層:hibernate框架mvc

(1)對數據庫進行crud操做

2.MVC思想

1 m:模型

2 v:視圖

3 c:控制器

3、Hibernate概述

1.什麼是框架

1 寫程序,使用框架以後,幫咱們實現一部分功能,使用框架好處,少寫一部分代碼實現功能

2.什麼是hibernate框架(重點)

1 hibernate框架應用在javaee三層結構中 dao層框架

2 在dao層裏面作對數據庫crud操做,使用hibernate實現crud操做,hibernate底層代碼就是jdbc,hibernate對jdbc進行封裝,使用hibernate好處,不須要寫複雜jdbc代碼了,

不須要寫sql語句實現

3 hibernate開源的輕量級的框架

4 hibernate版本

Hibernate3.x

Hibernate4.x

Hibernate5.x(學習)

lib:hibernate相關jar包

3.什麼是orm思想(重點)

1 hibernate使用orm思想對數據庫進行crud操做

2 在web階段學習 javabean,更正確的叫法 實體類

3 orm:object relational mapping,對象關係映射

文字描述:

(1)讓實體類和數據庫表進行一一對應關係

讓實體類首先和數據庫表對應

讓實體類屬性 和 表裏面字段對應

(2)不須要直接操做數據庫表,而操做表對應實體類對象

畫圖描述:

4、Hibernate入門

1.搭建hibernate環境(重點)

第一步 導入hibernate的jar包

由於使用hibernate時候,有日誌信息輸出,hibernate自己沒有日誌輸出的jar包,導入其餘日誌的jar包

不要忘記還有mysql驅動的jar包

第二步 建立實體類

 

 

(1)使用hibernate時候,不須要本身手動建立表,hibernate幫把表建立

第三步 配置實體類和數據庫表一一對應關係(映射關係)

使用配置文件實現映射關係

(1)建立xml格式的配置文件

- 映射配置文件名稱和位置沒有固定要求

- 建議:在實體類所在包裏面建立,實體類名稱.hbm.xml

(2)配置是是xml格式,在配置文件中首先引入xml約束

- 學過約束dtd、schema,在hibernate裏面引入的約束dtd約束

(3)配置映射關係

    <!-- 1 配置類和表對應 
        class標籤
        name屬性:實體類全路徑
        table屬性:數據庫表名稱
    -->
    <class name="cn.itcast.entity.User" table="t_user">
        <!-- 2 配置實體類id和表id對應 
            hibernate要求實體類有一個屬性惟一值
            hibernate要求表有字段做爲惟一值
        -->
        <!-- id標籤
            name屬性:實體類裏面id屬性名稱
            column屬性:生成的表字段名稱
         -->
        <id name="uid" column="uid">
            <!-- 設置數據庫表id增加策略 
                native:生成表id值就是主鍵自動增加
            -->
            <generator class="native"></generator>
        </id>
        <!-- 配置其餘屬性和表字段對應 
            name屬性:實體類屬性名稱
            column屬性:生成表字段名稱
        -->
        <property name="username" column="username"></property>
        <property name="password" column="password"></property>
        <property name="address" column="address"></property>
    </class>
</hibernate-mapping>

第四步 建立hibernate的核心配置文件

(1)核心配置文件格式xml,可是核心配置文件名稱和位置固定的

- 位置:必須src下面

- 名稱:必須hibernate.cfg.xml

(2)引入dtd約束

(3)hibernate操做過程當中,只會加載核心配置文件,其餘配置文件不會加載

第一部分: 配置數據庫信息 必須的

第二部分: 配置hibernate信息 可選的

第三部分: 把映射文件放到核心配置文件中

2.實現添加操做

第一步 加載hibernate核心配置文件

第二步 建立SessionFactory對象

第三步 使用SessionFactory建立session對象

第四步 開啓事務

第五步 寫具體邏輯 crud操做

第六步 提交事務

第七步 關閉資源

    @Test
    public void testAdd() {
//        第一步 加載hibernate核心配置文件
        // 到src下面找到名稱是hibernate.cfg.xml
        //在hibernate裏面封裝對象
        Configuration cfg = new Configuration();
        cfg.configure();
        
//        第二步 建立SessionFactory對象
        //讀取hibernate核心配置文件內容,建立sessionFactory
        //在過程當中,根據映射關係,在配置數據庫裏面把表建立
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        
//        第三步 使用SessionFactory建立session對象
        // 相似於鏈接
        Session session = sessionFactory.openSession();
        
//        第四步 開啓事務
        Transaction tx = session.beginTransaction();

//        第五步 寫具體邏輯 crud操做
        //添加功能
        User user = new User();
        user.setUsername("小王");
        user.setPassword("250");
        user.setAddress("日本");
        //調用session的方法實現添加
        session.save(user);
        
//        第六步 提交事務
        tx.commit();

//        第七步 關閉資源
        session.close();
        sessionFactory.close();
    }

看到效果:

(1)是否生成表

(2)看錶是否有記錄

5、Hibernate配置文件詳解

 1.Hibernate映射配置文件(重點)

1 映射配置文件名稱和位置沒有固定要求

2 映射配置文件中,標籤name屬性值寫實體類相關內容

(1)class標籤name屬性值實體類全路徑

(2)id標籤和property標籤name屬性值 實體類屬性名稱

3 id標籤和property標籤,column屬性能夠省略的

(1)不寫值和name屬性值同樣的

4 property標籤type屬性,設置生成表字段的類型,自動對應類型

2.Hibernate核心配置文件

1 配置寫位置要求

2 配置三部分要求

(1)數據庫部分必須的

(2)hibernate部分可選的

(3)映射文件必須的

3 核心配置文件名稱和位置固定的

(1)位置:src下面

(2)名稱:hibernate.cfg.xml

6、Hibernate核心api

1.Configuration

(1)到src下面找到名稱hibernate.cfg.xml配置文件,建立對象,把配置文件放到對象裏面(加載核心配置文件)

2.SessionFactory

1 使用configuration對象建立sessionFactory對象

(1)建立sessionfactory過程當中作事情:

- 根據核心配置文件中,有數據庫配置,有映射文件部分,到數據庫裏面根據映射關係把表建立

2 建立sessionFactory過程當中,這個過程特別耗資源的

(1)在hibernate操做中,建議一個項目通常建立一個sessionFactory對象

3 具體實現

(1)寫工具類,寫靜態代碼塊實現

* 靜態代碼塊在類加載時候執行,執行一次

3.Session(重點)

1 session相似於jdbc中connection

2 調用session裏面不一樣的方法實現crud操做

(1)添加 save方法

(2)修改 update方法

(3)刪除 delete方法

(4)根據id查詢 get方法

3 session對象單線程對象

(1)session對象不能共用,只能本身使用

4.Transaction

1 事務對象

2 事務提交和回滾方法

3 事務概念

(1)事務四個特性

原子性、一致性、隔離性、持久性

7、解決配置文件沒有提示問題

1 能夠上網

2 把約束文件引入到eclipse中

(1)在配置文件中複製一句話

重啓eclipse開發工具

8、演示常見錯誤

1 在映射配置文件中,把name屬性值寫錯了,和實體類屬性名稱不同,出現異常

2 在覈心配置文件中,沒有引入映射配置文件

3 測試配置是否正確

(1)在工具類,寫靜態代碼塊,建立sessionFactory,過程當中根據配置把表建立

(2)讓工具類執行,在工具類寫main方法能夠了

(3)若是出現異常,彈出框

點擊肯定,在控制檯有異常輸出

4 配置文件裏面屬性值,雙引號裏面不能有空格

5 注意輸入法全角問題

 

 參考資料:

《黑馬程序員》

相關文章
相關標籤/搜索