ݺߣ

ݺߣShare a Scribd company logo
ORM   Hibernate3.3

      HibernateӳԪغ
ʹ XML ļö - ϵ
ӳ
? Hibernateʹ XML ļö - ϵӳ䣬
  ŵ㣺
     ? HibernateȲ͸ϲģУҲ͸
       ģС
     ? ԱԶģͣǿκ
       淶
     ? ݿԱԶݿ⣬ǿκι
       
     ?  - ϵӳ䲻κγ룬Ҫ޸
        - ϵӳ䣬ֻ޸ XML ļҪ޸
       γԣʹάӷ㡣



www.sodi.com.cn
־ûԺͷʷ

? ־ûָʵҪ Hibernate־û
  ݿеࡣ־ûͨģеʵ
  ࣬ JavaB ean 淶
? HibernateҪ־ûʵ
  java.io.S erializableӿڡ
? HibernateҪ־ûṩһ޲ι췽
  
                         Customer 
                  Java        getXXX()
   û
                   Ӧ                    Hibernate   ݿ
   
                   
                              setXXX()



www.sodi.com.cn
ԺͰװ

? ڳ־ûУȿ԰ԶΪͣ
  ҲԶΪװͣǶӦͬ Hibernate
  ӳͣο Hibernate ӳͶ
   .xlsx 
? ͺͰװ͸ȱ㡣
? ͵ŵǣʹ÷㣬ͣ
  ֱӽѧ㣻ȱ޷ null
  ֵ
? װͽѧʱ΢鷳һЩ
  S QL ֮иֱӵĶӦϵ
? ڳ־û OI D Ƽʹðװ͡
www.sodi.com.cn
Hibernateʳ־ûԵIJ

? ڶ - ϵӳļУ < property> Ԫص
  access ָ Hibernateʳ־û
  ķʽֿѡֵ
     ? property Ĭֵ HibernateͨӦ
       setXXX( )  getXXX( ) ԡ
       ķʽ
     ? field  Hibernate Java ֱӷ
       ԡ




www.sodi.com.cn
ڳ־ûķʷм߼

? ڳ־ûķʷУԼ߼
  ˵
     ?  Customer  getName( )  setName( ) м
       ߼
     ?  Customer  setS ex( ) м֤߼




www.sodi.com.cn
 insert  update ( 1)

? Hibernateڳʼ׶Σͻӳļӳ
  ϢΪеij־ûԤ S QL 
  insert 䡢 update䡢 delete͸ OI D
  ־ûʵ select 䡣
   S algrade£
    INSERT    INTO SALGRADE(GRADE, LOSAL, HISAL) VALUES(?, ?, ?);
    UPDATE    SALGRADE SET LOSAL=?, HISAL=?;
    DELETE    FROM SALGRADE WHERE ID=?;
    SELECT    GRADE,LOSAL,HISAL FROM SALGRADE WHERE GRADE=?;




www.sodi.com.cn
 insert  update ( 2)

?  S QL еʺŴ JDB C P reparedS tatement е
  Щ S QL 䶼 S essionFactory ĻУ
  ִ S ession  save( )  update( )  delete( )  load( ) ʱ
  ӻҵӦԤ S QL 䣬ٰѾIJ
  ֵ󶨵 S QL С
?  HQL  QB C ѯӦ select ִиôʱ
  ̬ܶɡ
? ڶ - ϵӳļУͨ < class>  < property>
  ԪصһЩԣԿ insert  updateɣ
  ο Hibernate_Referenceж / ϵݿӳ
  ( B asic O/R Mapping) һ¡




www.sodi.com.cn
ڿ insert  updateӳ
      ӳ                                  
<property> Ԫص      false  insert вֶΣܱ ; ĬֵΪ true
insert 
<property> Ԫص      false  update вֶΣܱ޸ , ĬֵΪ true
update 
<class> Ԫص         false ȼе <property> Ԫص update Ϊ false 
mutable           ޸ , ĬֵΪ true
<property> Ԫص      Ϊ true, ʾһʱᶯ̬ insert 䣬ֻȡ
dynamic-insert    ֵΪ null ʱŻ insert УĬֵΪ false
<property> Ԫص      Ϊ true, ʾһʱᶯ̬ update 䣬ֻ
dynamic-update    ȡֵΪ null ʱŻ update УĬֵΪ false
<class> Ԫص         Ϊ true,  <property>  dynamic-insert Ϊ true, ʾ
dynamic-insert    һʱᶯ̬ insert 䣬ֻȡֵΪ null ʱ
                     insert УĬֵΪ false
<class> Ԫص         Ϊ true,  <property>  dynamic-update Ϊ true, 
dynamic-update    ʾһʱᶯ̬ insert 䣬ֻȡֵΪ null ʱ
                    Ż update УĬֵΪ false




www.sodi.com.cn
 S QL ñʶ

 ?  S QL ﷨УʶָΪݿ
   ͼֶλַʶ
   ոҲַʹ
   
 ? ʱرݿУ
   ַ߿ոıʶϣǿ
   ִСдߣ HibernateĬ
    Java еܱԶתΪ
   ݿϵͳвıô
   Ϳʹñʶ
 ? ÷һַ Hibernate
   һʵϸڣ JPA 淶һ֣
   һ£Ӧÿ
www.sodi.com.cn
ӳʶ

? Java ԰ڴַʶͬһIJͬ
  󣬶ϵݿⰴֵʶͬһ
  IJͬ¼
? Hibernateʹöʶ OI D ڴ
  Ķݿм¼ĶӦϵ
  OI D ݿӦ
? Ϊ˱֤־û OI D ΨһԺͲɱ
  Ӧ HibernateӦóΪ OI D ֵ
  



www.sodi.com.cn
< id> Ԫ

? ӳ  ӦݿֶΡ
  һ JavaB eans ԣ Ϊÿһʵ
  Ψһıʶ < id> Ԫض˸Ե
  ݿֶεӳ䡣磺
     <id name="productGuid" type="java.lang.Integer">
        <column name="ProductGUID" />
        <generator class="native" />
     </id>


? < id> ԪؿѡԿԲο
  Hibernate_Reference



www.sodi.com.cn
< generator> Ԫ

? < generator> Ԫ趨ʶ
? Hibernateṩ˱ʶӿ
  I dentifierGenerator ߿ͨʵָýӿڴ
  Լıʶ
? Ȼ Hibernateṩ˺ܶõʵ֣
  ܡ




www.sodi.com.cn
assigned ʶ

? Ӧó save( ) ֮ǰΪһʾ
   < generator> ԪûָʱĬɲ
  
? ÷Χ
     ?  assigned ɱʶĻƲڵײݿϵ
       ͳеݿϵͳ
     ? Ӧóɶ Hibernateɡ




www.sodi.com.cn
increm ʶ
      ent

? Hibernateʱȡ
  ֵÿβһʱֵ
  1 ɵıʶΪ long  short  int 
? ÷Χ
     ?  increm ɱʶĻƲڵײݿϵ
                    ent
       ͳеݿϵͳ
     ? ֻе HibernateӦý̷ͬһݿ
       ϣڼȺ²Ƽʹ
     ? OI D Ϊ long  int  short ͣ OI D Ϊ
       ͣʱ׳
       I dentifierGenerationE xception 


www.sodi.com.cn
identity ʶ

? I dentity ʶɵײݿɱ
  ʶҪײݿ⽫ΪԶ
  ֶ͡
? ÷Χ
     ?  identity ɱʶĻڵײݿϵͳ
       ˣҪײݿϵͳ֧Զֶ
       ֧͡Զֶ͵ݿ
       DB 2  MyS QL  MS S QL S erver  S ybase HS QLDB
        I nformix ȡ
     ? OI D Ϊ long  int  short ͣ OI D Ϊ
       ͣʱ׳
       I dentifierGenerationE xception 

www.sodi.com.cn
sequenceʶ

? sequenceʶõײݿṩ
  ɱʶ
? ÷Χ
     ?  sequenceɱʶĻڵײݿϵͳ
       УˣҪײݿϵͳ֧С֧
       еݿ Oracle DB 2  S A P DB 
       P ostpreS QL ȡ
     ? OI D Ϊ long  int  short ͣ OI D Ϊ
       ͣʱ׳
       I dentifierGenerationE xception 




www.sodi.com.cn
hilo ʶ

? hilo ʶ Hibernateһ hign/low 
  ɱʶݿضֶ
  ȡ hign ֵͨӱصĵֵΨһ
  
? ÷Χ
     ?  hilo ɱʶĻƲڵײݿϵͳ
       еݿϵͳ
     ? OI D Ϊ long  int  short ͣ OI D Ϊ
       ͣʱ׳
       I dentifierGenerationE xception 
     ? hign/low 㷨ɵıʶֻһݿб֤Ψ
       һ

www.sodi.com.cn
uuid ʶ

? uuid ʶʹһ 128 λȫΨһ
  ʶ Universally Unique I dentifier  UUI D 㷨
  ַ͵ıʶ UUI D  I P
  ַ JVM Ϣͬһʱе
  лΨһġ
? ÷Χ
     ? uuid ʶ Hibernateά uuid ֵ
        ڵײݿʵϸڣ
        ⡣
     ?  UUI D ֵȫģݿУ
        ȷ¼˳
     ? ȫֵҪΨһʶʱʹ
        ڲʹ JNI ǰµʵ
        ˡ
www.sodi.com.cn
guid ʶ

? guid ʶõײݿ guid ĺ
  ַ͵ıʶ
? ÷Χ
     ?  guid ɱʶĻڵײݿϵͳ
       ˣҪײݿ֧ guid Ŀǰ֧ guid 
       ݿУ Oracle MS S QL S erver  MyS QL  S ybase
       ȡ
     ?  UUI D ֵȫģݿУ
       ȷ¼˳
     ? ȫֵҪΨһʶʱʹ
       


www.sodi.com.cn
ʹ uuid ʶ guid ʶʱע

? uuid/guid ʶʹ 32 λ 16 ַ
  ҪռøĿռ䣬ЧҲȽϵͣ
  ˣһ㶼ڱмһʱͻ int 
  ͵ֲ uuid/guid Ϊ
  ʧ




www.sodi.com.cn
nativeʶ

? nativeʶݵײݿԶɱ
  ʶ֧ѡʹ identity  sequence
  hilo ʶ nativeԶжϵײݿ
  ṩɱʶĻơ
? ÷Χ
     ?  nativeܸݵײݿϵͳͣԶѡ
       ʵıʶ˺ʺݿƽ̨
       ͬһ HibernateӦҪӶݿϵͳij
       
     ? OI D Ϊ long  int  short ͣ OI D Ϊ
       ͣʱ׳
       I dentifierGenerationE xception 

www.sodi.com.cn
ӳ临ϣϣ  Ƕʽ

? ʹӳĶ
  Ϊʶԡ < com   posite-id> Ԫؽ < key-
  property> ӳ < key-m any-to-one> ӳ
  ΪԪء 磺
     <composite-id>
             <key-property name="medicareNumber"/>
             <key-property name="dependent"/>
     </composite-id>


? ֵעǣ
     ? ־ûʵ java.io.serializableӿڣд
       equals( )  hashCode( ) 
     ? ʼ־ûʵıʶԣ
       load( ) Ϲؼֹij־״̬
www.sodi.com.cn
ӳ临ϣϣ  ʽ

? ӳ临һַʽʹһΪһ
  ʵıʶ 磺
     <composite-id name="id" class="MedicareId">
             <key-property name="medicareNumber"/>
             <key-property name="dependent"/>
     </composite-id>

? Ҫ
     ? ʵ java.io.S erializableӿڡ
     ?  < key-property> Ԫָԡ
     ? ʵ equals( )  hashCode( )  , ʼպϹؼ
       ݿеĸһ¡
? ڳ־ûвض < key-property> Ԫָ
  ԣǶ id ԣΪ MedicareI d 
www.sodi.com.cn
Dem  ʹ MyE clipseԶ Hibernate
   o

? 1.  Hibernate֧֡
? 2.  Hibernate Reverse E ngineering ɶ - 
  ϵӳļ POJO Ĵ




www.sodi.com.cn
www.sodi.com.cn

More Related Content

What's hot (14)

lwdba C _ԭʼapYώȡʽ
lwdba C _ԭʼapYώȡʽlwdba C _ԭʼapYώȡʽ
lwdba C _ԭʼapYώȡʽ
d
?
JavaScript gփԵ 5
JavaScript gփԵ 5 JavaScript gփԵ 5
JavaScript gփԵ 5
Justin Lin
?
£ٰܳٲ2ǩ
£ٰܳٲ2ǩ£ٰܳٲ2ǩ
£ٰܳٲ2ǩ
shmily7788
?
ʵ
ʵʵ
ʵ
Jacky Chi
?
ǧfʼJava SE 7
ǧfʼJava SE 7ǧfʼJava SE 7
ǧfʼJava SE 7
javatwo2011
?
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
ted-xu
?

Viewers also liked (10)

youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social media
Delta-prosjektet
?
9 hibernate һԶϵӳ
9 hibernate һԶϵӳ9 hibernate һԶϵӳ
9 hibernate һԶϵӳ
Zelin Wang
?
16 hibernate criteriaѯ
16 hibernate criteriaѯ16 hibernate criteriaѯ
16 hibernate criteriaѯ
Zelin Wang
?
Plan - innovative m?ter ? m?te unge p?
Plan - innovative m?ter ? m?te unge p?Plan - innovative m?ter ? m?te unge p?
Plan - innovative m?ter ? m?te unge p?
Delta-prosjektet
?
10 hibernate Զϵӳ
10 hibernate Զϵӳ10 hibernate Զϵӳ
10 hibernate Զϵӳ
Zelin Wang
?
15 hibernate hqlѯ2
15 hibernate hqlѯ215 hibernate hqlѯ2
15 hibernate hqlѯ2
Zelin Wang
?
VG og unge brukere
VG og unge brukere VG og unge brukere
VG og unge brukere
Delta-prosjektet
?
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = sant
Delta-prosjektet
?
youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social media
Delta-prosjektet
?
9 hibernate һԶϵӳ
9 hibernate һԶϵӳ9 hibernate һԶϵӳ
9 hibernate һԶϵӳ
Zelin Wang
?
16 hibernate criteriaѯ
16 hibernate criteriaѯ16 hibernate criteriaѯ
16 hibernate criteriaѯ
Zelin Wang
?
Plan - innovative m?ter ? m?te unge p?
Plan - innovative m?ter ? m?te unge p?Plan - innovative m?ter ? m?te unge p?
Plan - innovative m?ter ? m?te unge p?
Delta-prosjektet
?
10 hibernate Զϵӳ
10 hibernate Զϵӳ10 hibernate Զϵӳ
10 hibernate Զϵӳ
Zelin Wang
?
15 hibernate hqlѯ2
15 hibernate hqlѯ215 hibernate hqlѯ2
15 hibernate hqlѯ2
Zelin Wang
?
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = sant
Delta-prosjektet
?

Similar to 3 hibernateӳԪغ (20)

Ѳپѧϰѵ
ѲپѧϰѵѲپѧϰѵ
Ѳپѧϰѵ
flynofry
?
Google protocol buffers
Google protocol buffersGoogle protocol buffers
Google protocol buffers
wavefly
?
Ecma script edition5-С
Ecma script edition5-СEcma script edition5-С
Ecma script edition5-С
lydiafly
?
Servlet & JSP ̌WփԵڶ - 7 £ʹ JSTL
Servlet & JSP ̌WփԵڶ -  7 £ʹ JSTLServlet & JSP ̌WփԵڶ -  7 £ʹ JSTL
Servlet & JSP ̌WփԵڶ - 7 £ʹ JSTL
Justin Lin
?
پ
پپ
پ
xujie
?
ٰܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽٰ̳ܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽ̳
yiditushe
?
ٰܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽٰ̳ܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽ̳
appollo0312
?
ɽ픶ӛ ؚw_l
ɽ픶ӛ   ؚw_lɽ픶ӛ   ؚw_l
ɽ픶ӛ ؚw_l
koji lin
?
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
Frank S.C. Tseng
?
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
March Liu
?
Linux c++ ֮װ -ƪ--v0.3--20120509
Linux c++ ֮װ -ƪ--v0.3--20120509Linux c++ ֮װ -ƪ--v0.3--20120509
Linux c++ ֮װ -ƪ--v0.3--20120509
tidesq
?
Metadata4shenzhen Final
Metadata4shenzhen FinalMetadata4shenzhen Final
Metadata4shenzhen Final
Shanghai Library
?
Kissy design
Kissy designKissy design
Kissy design
yiming he
?
ԴӦ־ռϵͳ
ԴӦ־ռϵͳԴӦ־ռϵͳ
ԴӦ־ռϵͳ
klandor
?
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
?
Google protocol buffers
Google protocol buffersGoogle protocol buffers
Google protocol buffers
wavefly
?
Ecma script edition5-С
Ecma script edition5-СEcma script edition5-С
Ecma script edition5-С
lydiafly
?
Servlet & JSP ̌WփԵڶ - 7 £ʹ JSTL
Servlet & JSP ̌WփԵڶ -  7 £ʹ JSTLServlet & JSP ̌WփԵڶ -  7 £ʹ JSTL
Servlet & JSP ̌WփԵڶ - 7 £ʹ JSTL
Justin Lin
?
ٰܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽٰ̳ܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽ̳
yiditushe
?
ٰܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽٰ̳ܳٲ+Բ+ᾱԲٱϽ̳
ٰܳٲ+Բ+ᾱԲٱϽ̳
appollo0312
?
ɽ픶ӛ ؚw_l
ɽ픶ӛ   ؚw_lɽ픶ӛ   ؚw_l
ɽ픶ӛ ؚw_l
koji lin
?
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
Frank S.C. Tseng
?
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
March Liu
?
Linux c++ ֮װ -ƪ--v0.3--20120509
Linux c++ ֮װ -ƪ--v0.3--20120509Linux c++ ֮װ -ƪ--v0.3--20120509
Linux c++ ֮װ -ƪ--v0.3--20120509
tidesq
?
ԴӦ־ռϵͳ
ԴӦ־ռϵͳԴӦ־ռϵͳ
ԴӦ־ռϵͳ
klandor
?
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
?

More from Zelin Wang (7)

3 hibernateӳԪغ

  • 1. ORM Hibernate3.3 HibernateӳԪغ
  • 2. ʹ XML ļö - ϵ ӳ ? Hibernateʹ XML ļö - ϵӳ䣬 ŵ㣺 ? HibernateȲ͸ϲģУҲ͸ ģС ? ԱԶģͣǿκ 淶 ? ݿԱԶݿ⣬ǿκι ? - ϵӳ䲻κγ룬Ҫ޸ - ϵӳ䣬ֻ޸ XML ļҪ޸ γԣʹάӷ㡣 www.sodi.com.cn
  • 3. ־ûԺͷʷ ? ־ûָʵҪ Hibernate־û ݿеࡣ־ûͨģеʵ ࣬ JavaB ean 淶 ? HibernateҪ־ûʵ java.io.S erializableӿڡ ? HibernateҪ־ûṩһ޲ι췽 Customer Java getXXX() û Ӧ Hibernate ݿ setXXX() www.sodi.com.cn
  • 4. ԺͰװ ? ڳ־ûУȿ԰ԶΪͣ ҲԶΪװͣǶӦͬ Hibernate ӳͣο Hibernate ӳͶ .xlsx ? ͺͰװ͸ȱ㡣 ? ͵ŵǣʹ÷㣬ͣ ֱӽѧ㣻ȱ޷ null ֵ ? װͽѧʱ΢鷳һЩ S QL ֮иֱӵĶӦϵ ? ڳ־û OI D Ƽʹðװ͡ www.sodi.com.cn
  • 5. Hibernateʳ־ûԵIJ ? ڶ - ϵӳļУ < property> Ԫص access ָ Hibernateʳ־û ķʽֿѡֵ ? property Ĭֵ HibernateͨӦ setXXX( ) getXXX( ) ԡ ķʽ ? field Hibernate Java ֱӷ ԡ www.sodi.com.cn
  • 6. ڳ־ûķʷм߼ ? ڳ־ûķʷУԼ߼ ˵ ? Customer getName( ) setName( ) м ߼ ? Customer setS ex( ) м֤߼ www.sodi.com.cn
  • 7. insert update ( 1) ? Hibernateڳʼ׶Σͻӳļӳ ϢΪеij־ûԤ S QL insert 䡢 update䡢 delete͸ OI D ־ûʵ select 䡣 S algrade£ INSERT INTO SALGRADE(GRADE, LOSAL, HISAL) VALUES(?, ?, ?); UPDATE SALGRADE SET LOSAL=?, HISAL=?; DELETE FROM SALGRADE WHERE ID=?; SELECT GRADE,LOSAL,HISAL FROM SALGRADE WHERE GRADE=?; www.sodi.com.cn
  • 8. insert update ( 2) ? S QL еʺŴ JDB C P reparedS tatement е Щ S QL 䶼 S essionFactory ĻУ ִ S ession save( ) update( ) delete( ) load( ) ʱ ӻҵӦԤ S QL 䣬ٰѾIJ ֵ󶨵 S QL С ? HQL QB C ѯӦ select ִиôʱ ̬ܶɡ ? ڶ - ϵӳļУͨ < class> < property> ԪصһЩԣԿ insert updateɣ ο Hibernate_Referenceж / ϵݿӳ ( B asic O/R Mapping) һ¡ www.sodi.com.cn
  • 9. ڿ insert updateӳ ӳ <property> Ԫص false insert вֶΣܱ ; ĬֵΪ true insert <property> Ԫص false update вֶΣܱ޸ , ĬֵΪ true update <class> Ԫص false ȼе <property> Ԫص update Ϊ false mutable ޸ , ĬֵΪ true <property> Ԫص Ϊ true, ʾһʱᶯ̬ insert 䣬ֻȡ dynamic-insert ֵΪ null ʱŻ insert УĬֵΪ false <property> Ԫص Ϊ true, ʾһʱᶯ̬ update 䣬ֻ dynamic-update ȡֵΪ null ʱŻ update УĬֵΪ false <class> Ԫص Ϊ true, <property> dynamic-insert Ϊ true, ʾ dynamic-insert һʱᶯ̬ insert 䣬ֻȡֵΪ null ʱ insert УĬֵΪ false <class> Ԫص Ϊ true, <property> dynamic-update Ϊ true, dynamic-update ʾһʱᶯ̬ insert 䣬ֻȡֵΪ null ʱ Ż update УĬֵΪ false www.sodi.com.cn
  • 10. S QL ñʶ ? S QL ﷨УʶָΪݿ ͼֶλַʶ ոҲַʹ ? ʱرݿУ ַ߿ոıʶϣǿ ִСдߣ HibernateĬ Java еܱԶתΪ ݿϵͳвıô Ϳʹñʶ ? ÷һַ Hibernate һʵϸڣ JPA 淶һ֣ һ£Ӧÿ www.sodi.com.cn
  • 11. ӳʶ ? Java ԰ڴַʶͬһIJͬ 󣬶ϵݿⰴֵʶͬһ IJͬ¼ ? Hibernateʹöʶ OI D ڴ Ķݿм¼ĶӦϵ OI D ݿӦ ? Ϊ˱֤־û OI D ΨһԺͲɱ Ӧ HibernateӦóΪ OI D ֵ www.sodi.com.cn
  • 12. < id> Ԫ ? ӳ ӦݿֶΡ һ JavaB eans ԣ Ϊÿһʵ Ψһıʶ < id> Ԫض˸Ե ݿֶεӳ䡣磺 <id name="productGuid" type="java.lang.Integer"> <column name="ProductGUID" /> <generator class="native" /> </id> ? < id> ԪؿѡԿԲο Hibernate_Reference www.sodi.com.cn
  • 13. < generator> Ԫ ? < generator> Ԫ趨ʶ ? Hibernateṩ˱ʶӿ I dentifierGenerator ߿ͨʵָýӿڴ Լıʶ ? Ȼ Hibernateṩ˺ܶõʵ֣ ܡ www.sodi.com.cn
  • 14. assigned ʶ ? Ӧó save( ) ֮ǰΪһʾ < generator> ԪûָʱĬɲ ? ÷Χ ? assigned ɱʶĻƲڵײݿϵ ͳеݿϵͳ ? Ӧóɶ Hibernateɡ www.sodi.com.cn
  • 15. increm ʶ ent ? Hibernateʱȡ ֵÿβһʱֵ 1 ɵıʶΪ long short int ? ÷Χ ? increm ɱʶĻƲڵײݿϵ ent ͳеݿϵͳ ? ֻе HibernateӦý̷ͬһݿ ϣڼȺ²Ƽʹ ? OI D Ϊ long int short ͣ OI D Ϊ ͣʱ׳ I dentifierGenerationE xception www.sodi.com.cn
  • 16. identity ʶ ? I dentity ʶɵײݿɱ ʶҪײݿ⽫ΪԶ ֶ͡ ? ÷Χ ? identity ɱʶĻڵײݿϵͳ ˣҪײݿϵͳ֧Զֶ ֧͡Զֶ͵ݿ DB 2 MyS QL MS S QL S erver S ybase HS QLDB I nformix ȡ ? OI D Ϊ long int short ͣ OI D Ϊ ͣʱ׳ I dentifierGenerationE xception www.sodi.com.cn
  • 17. sequenceʶ ? sequenceʶõײݿṩ ɱʶ ? ÷Χ ? sequenceɱʶĻڵײݿϵͳ УˣҪײݿϵͳ֧С֧ еݿ Oracle DB 2 S A P DB P ostpreS QL ȡ ? OI D Ϊ long int short ͣ OI D Ϊ ͣʱ׳ I dentifierGenerationE xception www.sodi.com.cn
  • 18. hilo ʶ ? hilo ʶ Hibernateһ hign/low ɱʶݿضֶ ȡ hign ֵͨӱصĵֵΨһ ? ÷Χ ? hilo ɱʶĻƲڵײݿϵͳ еݿϵͳ ? OI D Ϊ long int short ͣ OI D Ϊ ͣʱ׳ I dentifierGenerationE xception ? hign/low 㷨ɵıʶֻһݿб֤Ψ һ www.sodi.com.cn
  • 19. uuid ʶ ? uuid ʶʹһ 128 λȫΨһ ʶ Universally Unique I dentifier UUI D 㷨 ַ͵ıʶ UUI D I P ַ JVM Ϣͬһʱе лΨһġ ? ÷Χ ? uuid ʶ Hibernateά uuid ֵ ڵײݿʵϸڣ ⡣ ? UUI D ֵȫģݿУ ȷ¼˳ ? ȫֵҪΨһʶʱʹ ڲʹ JNI ǰµʵ ˡ www.sodi.com.cn
  • 20. guid ʶ ? guid ʶõײݿ guid ĺ ַ͵ıʶ ? ÷Χ ? guid ɱʶĻڵײݿϵͳ ˣҪײݿ֧ guid Ŀǰ֧ guid ݿУ Oracle MS S QL S erver MyS QL S ybase ȡ ? UUI D ֵȫģݿУ ȷ¼˳ ? ȫֵҪΨһʶʱʹ www.sodi.com.cn
  • 21. ʹ uuid ʶ guid ʶʱע ? uuid/guid ʶʹ 32 λ 16 ַ ҪռøĿռ䣬ЧҲȽϵͣ ˣһ㶼ڱмһʱͻ int ͵ֲ uuid/guid Ϊ ʧ www.sodi.com.cn
  • 22. nativeʶ ? nativeʶݵײݿԶɱ ʶ֧ѡʹ identity sequence hilo ʶ nativeԶжϵײݿ ṩɱʶĻơ ? ÷Χ ? nativeܸݵײݿϵͳͣԶѡ ʵıʶ˺ʺݿƽ̨ ͬһ HibernateӦҪӶݿϵͳij ? OI D Ϊ long int short ͣ OI D Ϊ ͣʱ׳ I dentifierGenerationE xception www.sodi.com.cn
  • 23. ӳ临ϣϣ Ƕʽ ? ʹӳĶ Ϊʶԡ < com posite-id> Ԫؽ < key- property> ӳ < key-m any-to-one> ӳ ΪԪء 磺 <composite-id> <key-property name="medicareNumber"/> <key-property name="dependent"/> </composite-id> ? ֵעǣ ? ־ûʵ java.io.serializableӿڣд equals( ) hashCode( ) ? ʼ־ûʵıʶԣ load( ) Ϲؼֹij־״̬ www.sodi.com.cn
  • 24. ӳ临ϣϣ ʽ ? ӳ临һַʽʹһΪһ ʵıʶ 磺 <composite-id name="id" class="MedicareId"> <key-property name="medicareNumber"/> <key-property name="dependent"/> </composite-id> ? Ҫ ? ʵ java.io.S erializableӿڡ ? < key-property> Ԫָԡ ? ʵ equals( ) hashCode( ) , ʼպϹؼ ݿеĸһ¡ ? ڳ־ûвض < key-property> Ԫָ ԣǶ id ԣΪ MedicareI d www.sodi.com.cn
  • 25. Dem ʹ MyE clipseԶ Hibernate o ? 1. Hibernate֧֡ ? 2. Hibernate Reverse E ngineering ɶ - ϵӳļ POJO Ĵ www.sodi.com.cn

Editor's Notes

  • #2: ͨ Hibernate 4 µСڿԿһ¡ ֮ǰֶ Hibernate Ϊ˷ڱ½β֣Ӧýһʹ MyEclipse Զ Hibernate Hibernate ֧֡򹤳̡Զ HibernateDAO
  • #4: JavaBean ͨ getter setter Ժ׵ԵĶ / дȨ޽з룻һŵǽʡģʽԼ Hibernate ͨ Java ó־ûķʷĹ̡ Hibernate ӦУ־ûķʷߣοͨ Hibernate P98 ͼ Java Ӧó򣺵ó־û getXXX() ȡϢû档ó־û setXXX() ûϢд뵽öС Hibernate ó־û getXXX() ȡϢ浽ݿ⡣ó־û setXXX() ѴݿжϢдöС ֵע Java Ӧóܷʳ־û private ͵ getXXX() setXXX() Hibernate ûƣܹʸַʼ getXXX() setXXX() Hibernate Ҫ־ûʵ java.io.Serializable ӿڣǶڲ÷ֲʽṹ Java Ӧã Java ڲͬĽ̽ڵ֮䴫ʱʵ Serializable ӿڣ⣬ Java Web ӦУϣ HttpSession дŵ Java г־ûô Java Ҳʵ Serializable ӿڡ Hibernate JPA Ҫÿ־û඼и޲ι캯 Hibernate 캯ʹ Java Reflection API ó־ûʵ󡣹캯ʹǹģǰɼ package-visable ģʱɵĴҪŻĻҲҪ಻ final
  • #5: Hibernate ӳ Բο Hibernate ӳͶձ .xls Щϣû͵Ĭֵʾֵδ֪ġ磬 Customer int ͵ age ԣ age Ϊ 0 ԰Ϊÿͻδ֪ġ ijЩϣ 0 ҵ壬޷á 0 ʾδ֪״̬ Student һ int ͵ score ԣʾѧĿԷ Int ͵ score Ծ޷ʾҵ score Ϊ null ʾѧijɼδ֪ģпܵ 100 ֣Ҳпܵ 0 ֻ֣ʱ֪ɼ score Ϊ 0 ʾѧԳɼΪ 0 ֡ £ʹðװ͡װͶ Java ࣬Ĭֵ null SQL У͵Ĭֵ null ͨ insert STUDENT һ¼ʱûΪ SCORE ֶθֵôֶαԶֵΪ null ɼ Java װͺ SQL ֮иֱӵĶӦϵ Hibernate ְ֧װͣҲֻ֧͡ԱԸݿϰ߼ҵʹú͡ڳ־û OID Ƽʹðװͣһ Hibernate API ԰װṩѺõ֧֣һ棬Ĭ£ Hibernate ݶ OID ǷΪ null ȷǷ˲ʱ״̬
  • #6: property Ϊ־ûÿṩ setXXX() getXXX() طװ־û࣬ģ͵͸ԡ field Customer ûΪ name ṩ setName() getName() Ϳ԰ name Ϊ field ʹ Hibernate ֱӷ name ԡ
  • #7: οͨ Hibernate P100 ڳ־ûķʷм߼ ע ڵһʾУ StringTokenizer dzڼԵԭࣨȻ´вʹѰ˹ܵʹ String split java.util.regex Ӧýе޸ġ ڽһڵʱӦͻǣʵݿ֮Dzȫһµģֲһ£ǡǡͨӳļл塣 ԵڶӣԷ &lt;property&gt; Ԫص access Ϊ field һΡ ʵӦУ֤߼ͨɱʾҵ߼Ĺʵ֡ʵм֤߼ҪDZͲԽ׶ܲʾ߹Ӧôδ쳣ѿԱڱʾ߹мص֤߼
  • #10: Hibernate ɶ̬ SQL ϵͳռ CPU ʱռõڴ棩С˲ӰӦõܡ аֶΣ dynamic-insert Ժ dynamic-update ԶΪ true insert update оֻҪµֶΣԽʡݿִ SQL ʱ䣬ӶӦõܡ
  • #11: Ĭ£ Hibernate ûɵ SQL Űѱʹ SQL ΢ĶҲʵ󲿷 SQL ݿڱȽûıʶʱDzִСдġʱرݿУַ߿ոıʶϣǿִСдߣ Hibernate Ĭã Java еܱԶתΪݿϵͳвı磬 User ౻ӳ䵽 USER ͨ SQL ݿбһؼ֡ Hibernate ʶκ DBMS SQL ؼ֣ݿϵͳʱ׳쳣 ӳļ÷Űѱ Hibernate ͻʼɵ SQL аʶڲͬݿϵͳñʶвͬʽ MS SQL Server УñʶʽΪ [IDENTIFIER_NAME] MySQL УñʶʽΪ IDENTIFIER_NAME Hibernate ӳļʱһɲá IDENTIFIER_NAME ʽ Hibernate Զ Hibernate ļе hibernate.sql_dialect ԣȷ SQL 䡣 ˰б÷֮⣬û취ǿ Hibernate κεطʹıʶˡκοܵʱ򣬶Ӧÿ÷һַ Hibernate һʵϸڣ JPA 淶һ֡
  • #12: 1. Ϊ˱֤ OID ΨһԺͲɱԣӦ Hibernate ӦóΪ OID ֵ
  • #14: ڽʶʱ򣬶Աһ±ʱɵ SQL ֶΡ
  • #24: ǰַΪ embedded Ƕʽ ϱʶҪӦвʹ÷