-
是是是是查看全部
-
單表操作CRUD實例 (1)save //生成學生對象 student s=new student( 0, "你的傻兒子", "男", new Date()); Address address =new Address("342400","789456132","贛州市"); s.setAddress(address); session.save(s);//保存對象進數據庫 System.out.println(s); (2)update student s=(student) session.get(student.class,0); s.setSname("而今打海盜"); System.out.println(s); (3)delete student s=(student) session.get(student.class,0); session.delete(s); (4)get/load(查詢單個記錄) 1.get: student s=(student) session.get(student.class,0); System.out.println(s); 2.load: student s=(student) session.load(student.class,0); System.out.println(s); get與load區別: 1.get()調用后立即發出sql語句,并返回持久化對象;load()使用對象時才發出sql語句,返回的是代理對象 2.當查詢到數據為空時,get返回null,load拋出objectNotFound異常查看全部
-
hibernate的執行流程 1.配置對象Configuration,作用: 讀取配置文檔:Hibernate.cfg.xml; 創建SessionFactory對象 2.SessionFactory,作用: 讀取相應的里面加載的對象關系映射文件 創建session文件 3.session,作用: 類似于JDBC中的Connection,這個session對象等同于連接對象 執行增刪改查: save,delete,update,get。 4.執行某個session對象的方法的時候,必須開啟一個事物transaction,這些方法需要封裝在事物當中。 5.執行完成方法之后,需要提交事務并且關閉session tx.commit() session.close() [ 收起全文 ]查看全部
-
ORM查看全部
-
hibernate開發的基本步驟查看全部
-
把session1.close();的注釋取消了 ,就知道為什么能證明了 session對象自動關閉后,下次取出的connection對象和上一次的connection對象是一樣的 但我的實測與理論結果不符。。。查看全部
-
get與load區別: 1.get調用后立即發出sql語句,并返回對象。load調用后返回代理對象,保存了實體對象id,直到使用了對象的非主鍵屬性時才發出sql語句 2.當查詢到數據為空時,get返回null,load返回objectNotFound異常查看全部
-
組件屬性:實體類中的某個屬性屬于用戶自定義類的對象; 作用:將兩個實體類合并在一起組建成一個表 在hbm.xml文件中配置: 格式: <component name="取的名字" class="類名"> <property name="類中屬性" column="對應生成數據庫中列屬性名"> </component>查看全部
-
對象類型查看全部
-
基本類型查看全部
-
單一主鍵:指表中由某一列來充當主鍵 assigned:由java程序負責生成(手工賦值) native:由底層數據庫自動生成標識符查看全部
-
hibernate.cfg.xml 常用配置查看全部
-
openSession與getCurrentSession的區別: (1)getCurrentSession在事務提交或者回滾之后會自動關閉,而openSesssion需要你手動關閉。如果使用openSession而沒有手動關閉,多次之后會導致連接池溢出! (2)openSession每次創建新的session對象,getCurrentSession使用現有的session對象 openSession與getCurrentSession openSession 每次使用都是打開一個新的session,使用完需要調用close方法關閉session; getCurrentSession 是獲取當前session對象,連續使用多次時,得到的session都是同一個對象,這就是與openSession的區別之一 ; 一般在實際開發中,往往使用getCurrentSession多,因為一般是處理同一個事務,所以在一般情況下比較少使用openSession;查看全部
-
openSession 每次使用都是打開一個新的session,使用完需要調用close方法關閉session; getCurrentSession 是獲取當前session對象,連續使用多次時,得到的session都是同一個對象,這就是與openSession的區別之一 ; 一般在實際開發中,往往使用getCurrentSession多,因為一般是處理同一個事務,所以在一般情況下比較少使用openSession; 如何獲得session對象??? (1)openSessionion (2)getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中進行配置: 如果是本地事務(jdbc事務) <property name="hibernate.current_session_context_class">thread</property> 如果是全局事務(jta事務) <property name="hibernate.current_session_context_class">jta</property>查看全部
-
hibernate對數據庫的操作都是封裝在事物transaction當中,并且默認是非自動提交的方式,所以用session保存對象時,若不開啟事務,并手工提交事務,對象時不會保存到數據庫當中的。若不開啟事物,也可以用session的doWork()方法來設置自動提交事務,并在保存對象之后,記得用session.flush();來輸出SQL語句,不然對象也是不會保存到數據庫中的。但一般是不建議用第二種方法,都是用事物來封裝對數據庫的操作。查看全部
舉報
0/150
提交
取消