-
什么是Hibernate:其他主流ORM框架查看全部
-
什么是Hibernate:2作為持久化層,持久化即長期存儲。持久化層表示執行持久化動作的功能層查看全部
-
什么是Hibernate:1查看全部
-
手動編寫寫Sql語句的缺陷查看全部
-
ORM概念查看全部
-
hibernate持久化類的創建和java bean一樣 java bean 遵循4個原則:1.有公有的類 2.有get/set封裝的方法 3.無參構造方法 4.屬性私有查看全部
-
ejb是一個重量級的orm框架使用比較復雜查看全部
-
EJB本身是javaEE的一個規范查看全部
-
本課程總結 1.什么是ORM?為什么使用Hibernate? 對象關系映射;為了少寫和底層數據庫相關的sql語句,方便程序的維護、修改,提高跨平臺性和可擴展性。Hibernate是Java領域內的一款技術成熟穩定的ORM框架 2.Hibernate開發的基本步驟? (1)編寫配置文檔hibernate.cfg.xml (2)編寫實體類。注意:每一個實體類都要與數據庫中的一張表一一對應,實體類的編寫要遵循JavaBean的要求。 (3)生成對應實體類的映射文件并添加到配置文檔中 (4)調用Hibernate API進行測試 3.什么是session? 類似于JDBC里面的connection對象。調用session操作數據庫,實際上就是調用connection的各種API函數來實現的。 4.openSession與getCurrentSession的區別? 前者每次都是創建新的session對象,而后者使用單例模式,每次創建都是相同的對象。openSession在使用完畢后需要顯式地關閉,而getCurrentSession在事務提交之后會自動關閉。 5.單表操作有哪些常用的方法? 增刪改查對應使用session當中的save、delete、update、get/load方法 6.單表操作,查詢一條記錄時,get和load的區別? get在使用的時候立即發送sql語句,并且獲得的是實體類的對象類型,而load只有在使用具體對象的非主屬性的時候才會發送sql語句,而且返回的是一個代理對象。查看全部
-
get和load的區別 1.在不考慮緩存的情況下,get方法會在調用之后立即向數據庫發出sql語句,返回持久化對象。 load方法會在調用之后返回一個代理對象。 該代理對象只保存了實體對象的id,直到使用對象的非主鍵屬性時才會發出sql語句。 2.查詢數據庫中不存在的數據時,get方法返回null, load方法拋出異常org.hibernate.ObjectNotFoundException。 如圖所示,使用反射機制返回類的名稱: get方法返回的是 Student,就是類名。 load方法返回的是 Student_ss_javassist_0,是一個代理對象。 去掉反射語句,測試方法只留下一句“Students s = (Student)session.get(Student.class,100);”,也就是獲得學生對象,但不做任何操作。執行該測試方法,會發現get()立即執行sql語句,而load()什么也沒有。查看全部
-
組件屬性:實體類中的某個屬性屬于用戶自定義類的對象; 作用:將兩個實體類合并在一起組建成一個表 在hbm.xml文件中配置: 格式: <component name="取的名字" class="完整類名"> <property name="類中屬性" column="對應生成數據庫中列屬性名"> </component> 完整類名:如果該類有包名,則需要加上包名,且用(.點 )來連接。查看全部
-
將數據庫中的Blob對象讀取到某一文件夾下。查看全部
-
保存對象到數據庫查看全部
-
對象類型 LOB(large object)是一種用于存儲大對象的數據類型. BLOB和CLOB都是大字段類型,BLOB是按二進制來存儲的,而CLOB是可以直接存儲文字的。 Mysql的text類型包含三種,從小到大依次為:TEXT、MEDIUMTEXT、LONGTXET。查看全部
-
Transaction事務簡介: 1. hibernate對數據庫的操作都是封裝在事務當中的,并且默認是非自動提交的方式。所以用session保存對象時,如果不開啟事務并且沒有手工提交事務,對象并不會真正保存在數據庫中。 2. 如果你想讓hibernate像jdbc那樣自動提交事務,必須調用session對象的doWork()方法,獲得jdbc的connection后,設置其為自動提交事務模式(注意:通常并不推薦這樣做) 綜上,我們必須開啟事務。 使用Session的doWork()方法提交事務(需要重寫execute()方法)。 需要注意的是:在使用save()方法后并不會真正輸出sql語句,需要調用flush()強制輸出sql語句才可以。然后因為采用了自動提交方式(setAutoCommit(true)),數據才真正保存在數據庫。查看全部
舉報
0/150
提交
取消