自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate區(qū)分不同對象的方法

開發(fā) 后端
本文講述了關(guān)系數(shù)據(jù)庫、Java和Hibernate區(qū)分不同對象的方法。關(guān)系數(shù)據(jù)庫按主鍵區(qū)分不同記錄。Java語言按內(nèi)存地址區(qū)別不同的對象。而Hibernate用對象標(biāo)識符(OID)來區(qū)分不同對象。

1.關(guān)系數(shù)據(jù)庫按主鍵區(qū)分不同記錄。

  1. create table CUSTOMERS (ID int promary key not nullNAME varchar(15));  
  2.  
  3. insert into CUSTOMERS values(1, 'Tom');  
  4.  
  5. insert into CUSTOMERS values(3, 'Tom');  

2.Java語言按內(nèi)存地址區(qū)別不同的對象。

  1. Customer c1 = new Customer("Tom");  
  2.  
  3. Customer c2 = new Customer("Tome");  
  4.  
  5. Customer c3 = c1;  
  6.  
  7. // c1 == c3 結(jié)果為true 
  8.  
  9. // c1 == c2 結(jié)果為false 

3.Hibernate用對象標(biāo)識符(OID)來區(qū)分不同對象。

  1. Customer c1 = (Customer)session.load(Customer.classnew Long(1));  
  2.  
  3. Customer c2 = (Customer)session.load(Customer.classnew Long(1));  
  4.  
  5. Customer c3 = (Customer)session.load(Customer.classnew Long(3));  
  6.  
  7. // c1 == c2 結(jié)果為true  
  8.  
  9. // c1 == c3 結(jié)果為false  

以上程序中,三次調(diào)用了Session的load()方法,分別加載OID為1或3的Customer對象。以下是Hibernate三次加載Customer對象的流程。

(1)第一次加載OID為1的Customer對象時,先從數(shù)據(jù)庫的CUSTOMERS表中查詢ID為1的記錄,再創(chuàng)建相應(yīng)的Customer實例,把它保存在Session緩存中,最后把這個對象的引用賦值給變量c1。

(2)第二次加載OID為1的Customer對象時,直接把緩存中OID為1的Customer對象的引用賦值給c2,因為c1和c2引用同一個Customer對象。

(3)當(dāng)加載OID為3的Customer對象時,由于在緩存中不存在這樣的對象,所以必須再次到數(shù)據(jù)庫中查詢OID為3的記錄,再創(chuàng)建相應(yīng)的Customer實例,把它保存存在Session緩存中,最后把這個對象的引用賦值給變量c3。

【編輯推薦】

  1. Hibernate創(chuàng)建命名策略
  2. Hibernate的unsaved-value
  3. Hibernate中g(shù)et和load方法的區(qū)別
  4. 項目添加Hibernate支持
  5. Hibernate查詢語言HQL 八大要點


 

責(zé)任編輯:book05 來源: 百度博客
相關(guān)推薦

2009-06-30 16:41:12

Hibernate的事

2012-02-08 14:01:18

HibernateJava

2013-08-15 09:38:56

服務(wù)器虛擬化虛擬化

2012-02-08 14:24:35

HibernateJava

2009-09-25 13:14:58

Hibernate C

2009-09-29 10:46:58

Hibernate領(lǐng)域

2009-09-23 10:14:10

Hibernate使用

2009-06-26 16:34:50

delete()方法Hibernate S

2009-06-26 16:33:09

saveOrUpdatHibernate

2024-05-28 09:49:42

Python對象函數(shù)

2009-06-17 15:06:50

Hibernate實體

2009-09-23 13:26:10

Hibernate對象

2009-09-22 11:27:41

模型對象Hibernate

2009-09-25 15:34:42

Hibernate關(guān)聯(lián)

2009-09-23 16:54:08

Hibernate修改

2009-06-16 16:27:22

Hibernate優(yōu)化

2009-09-27 14:41:05

Hibernate I

2009-09-23 09:47:23

Hibernate e

2009-06-12 15:09:01

Hibernate優(yōu)化

2009-09-25 15:58:04

Hibernate對象
點贊
收藏

51CTO技術(shù)棧公眾號