Hibernate_day1(轉載傳智播客的老師講義,博主只圖檢視方便)
Hibernate_day01
Hibernate課程安排
第一天 hibernate入門和基本操作
第二天 hibernate概念和api使用
第三天 hibernate配置一對多和多對多
第四天 hibernate查詢操作 |
今天內容介紹
1 web內容回顧 (1)javaee三層結構 (2)mvc思想
2 hibernate概述
3 hibernate入門案例
4 hibernate配置檔案
5 hibernate |
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底層程式碼就是jdbc,hibernate對jdbc進行封裝,使用hibernate好處,不需要寫複雜jdbc程式碼了, 不需要寫sql語句實現
3 hibernate開源的輕量級的框架
4 hibernate版本 Hibernate3.x Hibernate4.x Hibernate5.x
lib:hibernate相關jar包 |
什麼是orm思想(重點)
1 hibernate使用orm思想對資料庫進行crud操作
2 在web階段學習 javabean,更正確的叫法 實體類
3 orm:object relational mapping,物件關係對映 文字描述: (1)讓實體類和資料庫表進行一一對應關係 讓實體類首先和資料庫表對應 讓實體類屬性 和 表裡面欄位對應 (2)不需要直接操作資料庫表,而操作表對應實體類物件
畫圖描述:
|
Hibernate入門
搭建hibernate環境(重點)
第一步 匯入hibernate的jar包
因為使用hibernate時候,有日誌資訊輸出,hibernate本身沒有日誌輸出的jar包,匯入其他日誌的jar包 不要忘記還有mysql驅動的jar包
第二步 建立實體類 (1)使用hibernate時候,不需要自己手動建立表,hibernate幫把表建立
第三步 配置實體類和資料庫表一一對應關係(對映關係) 使用配置檔案實現對映關係 (1)建立xml格式的配置檔案 - 對映配置檔名稱和位置沒有固定要求 - 建議:在實體類所在包裡面建立,實體類名稱.hbm.xml (2)配置是是xml格式,在配置檔案中首先引入xml約束 - 學過約束dtd、schema,在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約束 (3)hibernate操作過程中,只會載入核心配置檔案,其他配置檔案不會載入 第一部分: 配置資料庫資訊 必須的 第二部分: 配置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屬性值寫實體類相關內容 (1)class標籤name屬性值實體類全路徑 (2)id標籤和property標籤name屬性值 實體類屬性名稱
3 id標籤和property標籤,column屬性可以省略的 (1)不寫值和name屬性值一樣的
4 property標籤type屬性,設定生成表字段的型別,自動對應型別 |
Hibernate核心配置檔案
1 配置寫位置要求
2 配置三部分要求 (1)資料庫部分必須的 (2)hibernate部分可選的 (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類似於jdbc中connection
2 呼叫session裡面不同的方法實現crud操作 (1)新增 save方法 (2)修改 update方法 (3)刪除 delete方法 (4)根據id查詢 get方法
3 session物件單執行緒物件 (1)session物件不能共用,只能自己使用 |
Transaction
1 事務物件
2 事務提交和回滾方法
3 事務概念 (1)事務四個特性 原子性、一致性、隔離性、永續性 |
解決配置檔案沒有提示問題
1 可以上網
2 把約束檔案引入到eclipse中
(1)在配置檔案中複製一句話
重啟eclipse開發工具 |
演示常見錯誤
1 在對映配置檔案中,把name屬性值寫錯了,和實體類屬性名稱不一樣,出現異常
2 在核心配置檔案中,沒有引入對映配置檔案
3 測試配置是否正確 (1)在工具類,寫靜態程式碼塊,建立sessionFactory,過程中根據配置把表建立 (2)讓工具類執行,在工具類寫main方法可以了 (3)如果出現異常,彈出框 點選確定,在控制檯有異常輸出
4 配置檔案裡面屬性值,雙引號裡面不能有空格
5 注意輸入法全形問題 |