-
session詳解:
查看全部 -
hibernate的執行流程
查看全部 -
Hibernate單表操作CRUD實例
保存:session的save方法。
修改:session的update方法。
刪除:session的delete方法。
查詢:session的get/load方法(查詢單個記錄)。
session.get(類對象(Student.class),要查詢的主鍵(1))。
參數中提示的 Class arg0 表示要傳入 類對象 arg0 ,Class 表示的是類型是 Class,也就是 類類型。
get與load的區別
?1、 在不考慮緩存的情況下,get方法會在被調用之后立即向數據庫發出sql語句,并返回持久化對象,而load方法會在被調用之后返回一個代理對象,該代理對象只保存了實體對象的id(主鍵),直到真正使用對象的非主鍵屬性時才會發出sql語句。
?2、 如果要查詢的數據不存在,get方法返回null,load方法拋出異常org.hibernate.ObjectNotFoundException
查看全部 -
<component?name="address"?class="Address"> ???<property?name="postname"?column="POSTNAME"></property> ????<property?name="phone"?column="PHONE"></property> ????<property?name="address"?column="ADDRESS"></property> ?</component>
組件屬性:學生標簽有一個 address 屬性,address 是 類(class)Address 的實例對象,這個類有三個字段 postcode,phone。address。就把 address 這個屬性叫做組件屬性。
查看全部 -
CRUD 增刪改查
創建(Create)、更新(Update)、讀取(Retrieve)和刪除(Delete)
查看全部 -
openSession() 需要手動關閉(session.close())不然一直消耗 connection 資源最后連接溢出
getCurrentSession() 每次提交事務后會自動關閉 session,也就釋放了 connection 資源,每次連接的 connection 都是同一個 connection 對象,connection 對象的 hashCode 相同
查看全部 -
Hibernate 對數據的操作都是封裝在 事務 中的,并且默認是非自動提交方式,所以用 session 保存對象時,如果不開啟事務,并且手工提交事務,對象并不會真正保存在數據庫中。
開啟事務是通過 session.openTransaction() 實現的,事物的提交是 transaction.commit() 實現的?
查看全部 -
執行 session 的某個方法時,要先開啟一個事務,也就是這些方法封裝在事務中,執行完方法后,要先提交事務,再關閉 session 。
session與connection,是多對一的關系,每個session都有一個與之對應的connection,一個connection不同時刻可以供多個session使用
查看全部 -
通過Hibernate API編寫訪問數據庫的代碼
1.開啟事務
1 12345678910 //創建配置對象
?
Configuration?config?=?
new
?Configuration().configure();
?
//創建服務注冊對象
?
ServiceRegistry?serviceRegistry?=?
new
?ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
?
//創建會話工廠對象
?
sessionFactory?=?config.buildSessionFactory(serviceRegistry);
?
//會話對象
?
session?=?sessionFactory.openSession();
?
//開啟事務
?
transaction?=?session.beginTransaction();
2.執行CRUD操作
12 Student?s?=?
new
?Student(
1
,
"張三豐"
,
"男"
,
new
?Date(),
"武當山"
);????
session.save(s);
3.提交事務,關閉相應的資源
123 transaction.commit();
//提交事務????
session.close();
//關閉會話?????
sessionFactory.close();
//關閉會話工廠
查看全部 -
hibernate總結
查看全部 -
hjibernate單一主鍵
查看全部 -
Hibernate單表操作CRUD實例
保存:session的save方法。
修改:session的update方法。
刪除:session的delete方法。
查詢:session的get/load方法(查詢單個記錄)。
session.get(類對象(Student.class),要查詢的主鍵(1))。
session.load(類對象(Student.class),要查詢的主鍵(1))。
get和load的區別:
第一個區別:在不考慮緩存的情況下,get方法會在調用之后立即向數據庫發出sql語句(不管是否使用該對象,它都會立刻發出sql語句)。直到使用對象的非主鍵屬性時才會發出sql語句。
第二個區別:get方法會在調用之后立即返回持久化對象。load方法會在調用后返回一個代理對象,該代理對象只保存了實體對象的主鍵Id。
獲得類對象的名字:(反射機制)s.getClass().getName()。
第三個區別:查詢數據庫不存在的數據時,get方法返回null,load方法拋出異常org.hibernate.ObjectNotFoundException。
查看全部 -
session沒有關閉
session關閉
查看全部 -
hibernate開發基本步驟
查看全部 -
get與load的區別
?1、 在不考慮緩存的情況下,get方法會在被調用之后立即向數據庫發出sql語句,并返回持久化對象,而load方法會在被調用之后返回一個代理對象,該代理對象只保存了實體對象的id(主鍵),直到真正使用對象的非主鍵屬性時才會發出sql語句。
?2、 如果要查詢的數據不存在,get方法返回null,load方法拋出異常org.hibernate.ObjectNotFoundException
查看全部
舉報