1. 程式人生 > >Hibernate_day1(轉載傳智播客的老師講義,博主只圖檢視方便)

Hibernate_day1(轉載傳智播客的老師講義,博主只圖檢視方便)

Hibernate_day01

Hibernate課程安排

第一天 hibernate入門和基本操作

 

第二天 hibernate概念和api使用

 

第三天 hibernate配置一對多和多對多

 

第四天 hibernate查詢操作

今天內容介紹

1 web內容回顧

1javaee三層結構

2mvc思想

 

2 hibernate概述

 

3 hibernate入門案例

 

4 hibernate配置檔案

 

5 hibernate

api使用

 

WEB內容回顧

JavaEE三層結構

1 web層:struts2框架

 

2 service層:spring框架

 

3 dao層:hibernate框架

1)對資料庫進行crud操作

 

MVC思想

1 m:模型

2 v:檢視

3 c:控制器

 

Hibernate概述

什麼是框架

1 寫程式,使用框架之後,幫我們實現一部分功能,使用框架好處,少寫一部分程式碼實現功能

 

什麼是hibernate框架(重點)

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

 

2 dao層裡面做對資料庫crud操作,使用hibernate實現crud操作,hibernate底層程式碼就是jdbchibernatejdbc進行封裝,使用hibernate好處,不需要寫複雜jdbc程式碼了,

不需要寫sql語句實現

 

3 hibernate開源的輕量級的框架

 

4 hibernate版本

Hibernate3.x

Hibernate4.x

Hibernate5.x

(學習)

 

libhibernate相關jar

 

什麼是orm思想(重點)

1 hibernate使用orm思想對資料庫進行crud操作

 

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

 

3 ormobject relational mapping,物件關係對映

文字描述:

1)讓實體類和資料庫表進行一一對應關係

讓實體類首先和資料庫表對應

讓實體類屬性 表裡面欄位對應

2)不需要直接操作資料庫表,而操作表對應實體類物件

 

畫圖描述:

 

 

Hibernate入門

搭建hibernate環境(重點)

第一步 匯入hibernatejar

 

因為使用hibernate時候,有日誌資訊輸出,hibernate本身沒有日誌輸出的jar包,匯入其他日誌的jar

不要忘記還有mysql驅動的jar

 

第二步 建立實體類

1)使用hibernate時候,不需要自己手動建立表,hibernate幫把表建立

 

第三步 配置實體類和資料庫表一一對應關係(對映關係)

使用配置檔案實現對映關係

1)建立xml格式的配置檔案

- 對映配置檔名稱和位置沒有固定要求

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

2)配置是是xml格式,在配置檔案中首先引入xml約束

- 學過約束dtdschema,在hibernate裡面引入的約束dtd約束

3)配置對映關係

<hibernate-mapping>

    <!-- 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約束

3hibernate操作過程中,只會載入核心配置檔案,其他配置檔案不會載入

第一部分: 配置資料庫資訊 必須的

第二部分: 配置hibernate資訊 可選的

第三部分: 把對映檔案放到核心配置檔案中

實現新增操作

第一步 載入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)看錶是否有記錄

Hibernate配置檔案詳解

Hibernate對映配置檔案(重點)

1 對映配置檔名稱和位置沒有固定要求

 

2 對映配置檔案中,標籤name屬性值寫實體類相關內容

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

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

 

3 id標籤和property標籤,column屬性可以省略的

1)不寫值和name屬性值一樣的

 

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

 

Hibernate核心配置檔案

1 配置寫位置要求

 

2 配置三部分要求

1)資料庫部分必須的

2hibernate部分可選的

3)對映檔案必須的

 

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

1)位置:src下面

2)名稱:hibernate.cfg.xml

 

Hibernate核心api

Configuration

1 程式碼

1)到src下面找到名稱hibernate.cfg.xml配置檔案,建立物件,把配置檔案放到物件裡面(載入核心配置檔案)

 

SessionFactory(重點)

1 使用configuration物件建立sessionFactory物件

1)建立sessionfactory過程中做事情:

- 根據核心配置檔案中,有資料庫配置,有對映檔案部分,到資料庫裡面根據對映關係把表建立

 

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

1)在hibernate操作中,建議一個專案一般建立一個sessionFactory物件

 

3 具體實現

1)寫工具類,寫靜態程式碼塊實現

* 靜態程式碼塊在類載入時候執行,執行一次

 

 

Session(重點)

1 session類似於jdbcconnection

 

2 呼叫session裡面不同的方法實現crud操作

1)新增 save方法

2)修改 update方法

3)刪除 delete方法

4)根據id查詢 get方法

 

3 session物件單執行緒物件

1session物件不能共用,只能自己使用

 

Transaction

1 事務物件

 

2 事務提交和回滾方法

 

3 事務概念

1)事務四個特性

原子性、一致性、隔離性、永續性

 

解決配置檔案沒有提示問題

1 可以上網

 

2 把約束檔案引入到eclipse

 

1)在配置檔案中複製一句話

 

 

重啟eclipse開發工具

 

演示常見錯誤

1 在對映配置檔案中,把name屬性值寫錯了,和實體類屬性名稱不一樣,出現異常

 

2 在核心配置檔案中,沒有引入對映配置檔案

 

3 測試配置是否正確

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

2)讓工具類執行,在工具類寫main方法可以了

3)如果出現異常,彈出框

點選確定,在控制檯有異常輸出

 

4 配置檔案裡面屬性值,雙引號裡面不能有空格

 

5 注意輸入法全形問題