第1章 Hibernate初識
1-2 什么是ORM?
· ORM(Object/Relationship Mapping):對象/關系映射
——利用面向對象思想編寫的數據庫應用程序最終都是把對象信息保存在關系型數據庫中,于是要編寫很多和底層數據庫相關的SQL語句
Hibernate就是一種可行的ORM框架技術
1-3 Hibernate簡介
1-4 ?Hibernate開發前準備
Hibernate Tools for Eclipse plugins
插件下載路徑:
http://sourceforge.net/projects/jboss/files/JBossTools/JBossTools4.1.x/hibernatetools-Update-4.1.2.Final_2014-03-18_15-46-19-B706.zip/download
配置方法:help—>Install New SoftWare——>點擊Add——>選擇路徑 ?
? ? 然后點擊安裝,需要重啟。檢查是否安裝成功(空白處右鍵 new——>other 看看有沒有Hibernate)
重點
1-5 編寫第一個Hibernate例子
第一步:創建Hibernate的配置文件 (hibernate.cfg.xml)
第二步:創建持久化類
第三步:創建對象——關系映射文件
第四步:通過Hibernate API編寫訪問數據庫的代碼
使用的版本:Hibernate 4.2.4 +Mysql6.0
具體的實現步驟:
第一步:創建一個工程
第二步:導入Hibernate必須的jar包
? ? ? ? ? ?下載地址:http://img.mukewang.com/down/558ca82d0001766100000000.rar
第三步:導入Mysql的jdbc驅動(mysql-connector-java-5.1.11-bin.jar)
第四步:導入Junit4的jar包 (junit-4.10.jar)
具體按照1-5 實現配置的具體步驟:
這里講的是Eclipse,如果是MyEclipse;具體方法參照:
http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html
第一步 hibernate配置文檔
注意:如果使用Eclipse生成的配置文檔沒有智能提示時,需要自己導入dtd文檔的支持
第二步 創建持久化類 (跟JavaBean的寫法一樣)
第三步 創建對象-關系映射文件和數據庫
補充一步:JUnit 進行單元測試
注解:@Before:是一個初始化方法
? ? ? ? ? @Test:是一個測試方法
? ? ? ? ? ?@After:釋放資源
第四步:通過Hibernate API編寫訪問數據庫的代碼
接著補充那步寫
右鍵運行(JUnit Test)
詳細講解 上面出現的一些配置文檔或者.....
講解——hibernate常用配置
使用的時候,hibernate前綴可以去掉。如 hibernate.dialect === dialect
default_schema:在執行sql語句的時候,對所有的表名前面加上 這個數據庫的前綴(數據庫名. ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表名)
hbm2ddl.auto介紹:
? ? ? ?create:表示每次生成新的表結構(如果原來的表存在,會先刪除原來的表,再創建新 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表,并且添加記錄)
? ? ? ?update:在原來表的基礎上面進行更新(原來的測試數據會保留)
? ? ? create-drop:先創建再刪除
? ? ? validate:對原來的表結構進行驗證(如果現在的表結構與原來的不相同,就不會創建表結 ? ? ? ? ? ? ? ? ? ? ? ?構)
講解——session簡介
1.不建議直接使用jdbc的connection操作數據庫,而是通過使用session操作數據庫
2.session可以理解為 操作數據庫的 ?對象
3.session與connetion,是多對一關系,每一個session都有一個與之對應的connection,一個connection不同時刻可以供多個session使用。
4.要想把對象保存在關系數據庫中需要調用session的各種方法。
如:save(), update(), delete(), createQuery()等
講解——session詳解
一、如何獲取session對象?
1. openSession()
2. getCurrentSession()
二、openSession 與 getCurrentSession 的區別
1.getCurrentSession 在事務提交或者回滾之后會自動關閉,而openSession需要你手動關閉。如果使用openSession而沒有手動關閉,多次之后會導致連接池溢出。
2.openSession每次創建新的session對象,getCurrentSession使用現有的session對象
體現第一點區別:
講解—— hbm配置文檔
講解—— transaction簡介
· hibernate對數據庫的操作都是封裝在事務當中,并且默認是非自動提交的方式。所以用session保存對象時,如果不開啟事務,并且手工提交事務,對象并不會真正保存在數據庫中。
· 如果你想讓hibernate像jdbc那樣自動提交事務,必須調用session對象的doWork()方法,獲得jdbc的connection后,設置其為自動提交事務模式(注意:通常并不推薦這樣做)
注意:不開啟事務就不能將對象保存到數據庫中!
如果不使用事務!改相應的代碼
補充,Hibernate 操作數據庫的 增刪改查
E:\student\java\java框架學習\Hibernate\Hibernate_demo1