detain hibernate

Upload: nguyen-the-anh

Post on 03-Jun-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Detain Hibernate

    1/23

    Cc thnh vin trong nhm tm hiu:

    Nguyn Nht Cng

    Cao Chuyn

    Mohamed Hary

    AbuljaminNguyn Quc Vit

    BO CO KT QUTM HIU

    NHIBERNATE

    YOUR WELCOME

  • 8/12/2019 Detain Hibernate

    2/23

    1.NHibernate v kin trc NHibernate

    +NHibernate l mt cng cORM(Object/Relation Mapping ) cho mi trng .NET .ORM l mt kthut dngnh xtm hnh i tng sang m hnh quan h.

    + Hibernate l mt dch vlu trv truy vn dliu quan hmnh mv nhanh. Hibernategip bn pht trin cc class dng lu trdliu theo cch thc rt l hng i tng:association, inheritance, polymorphism, composition v collections. Hibernate cho php bn thchin cc cu truy vn dliu bng cch sdng ngn ngSQL mrng ca Hibernate (HQL)hoc l ngn ngSQL nguyn thucng nh l sdng cc API.+ NHibernate cn c khnng truy vn , cp nht csdliu , cthl chng ta c ththc hin vic thm, xa , sa dliu v thc hin cc cu lnh select thng quaNHibernate.

    +Khng ging nh cc persistence layer khc, Hibernate khng n i sc mnh ca ngn ngSQL khi bn m Hibernate cn m bo cho bn vic bn u t vo cng nghv tri thc csdliu quan hl lun lun chnh xc. V iu quan trng hn na l Hibernate c licensetheo LGPL (Lesser GNU Public License). Theo , bn c ththoi mi sdng Hibernate trongcc dn open source hoc cc dn thng mi (commercial).

    +NHibernate l mt cng cmapping object/relational cho mi trng .NET. Thut ngmapping object/relational (ORM) lin quan ti kthut mapping mt m phng dliu ca mtobject model ti mt relational data model vi mt m hnh da trn SQL.+Cc thnh phn ca Hibernate project:

    * Hibernate Core: Cung cp cc chc nng c bn ca mt persistence layer cho cc ng dngJava vi cc APIs v htrXML mapping metadata.* Hibernate Annotations: Cc map class vi JDK 5.0 annotations, bao gm Hibernate Validator.* Hibernate EntityManager: Sdng EJB 3.0 EntityManager API trong JSE hoc vi bt kJEEserver no.

    * Hibernate Tools: Cc tool tch hp vi Eclipse v Ant dng cho vic sinh ra cc persistenceobject tmt schema c sn trong database (reverse-engineering) v tcc file hbm sinh ra ccclass java hin thc cc persistence object, ri Hibernate tto cc object trong database(forward-engineering).

    * NHibernate: Hibernate cho .Net framework.

    * JBoss Seam: Mt Java EE 5.0 framework cho pht trin cc ng dng JSF, Ajax v EJB 3.0

    vi shtrca Hibernate. Seam hin rt mi v tra rt mnh pht trin cc ng dng Web2.0. N tch hp y tt ccc cng ngh"hot" nht hin nay.

    Logo ca NHibernate :

  • 8/12/2019 Detain Hibernate

    3/23

    i. Cc phin bnNHibernate c bt u bi Tom Barrett. Cui nm 2005, JBoss (nay l 1 phn

    ca Red Hat) v pht trin cc phin bn ca NHibernate. Cui nm 2006 th JBossngng h tr d n ny v by gi NHibernate hon ton c pht trin bi cngng

    Version 1.0 phn nh cc c im ca Hibernate 2.1 v 1 s c imca Hibernate 3

    NHibernate 1.2.1 pht hnh vo thng 11 nm 2007, gii thiu nhiu cim ca Hibernate 3 v h tr .NET 2.0 nh stored procedures, genericsv nhng kiu d liu c php null (nullable types)

    NHibernate 2.0 pht hnh vo ngy 23 thng 8 nm 2008, n c th sosnh vi Hibernate 3.2 v cc tnh nng, v phin bn ny NHibernates khng h tr .NET 1.1

    NHibernate 2.1 c pht hnh ngy 17 thng 7 nm 2009

    NHibernate 3.0 c pht hnh ngy 4 thng 12 nm 2010 v l phi nbn u tin dng .NET 3.5. H tr tch hp LINQ v API mnh nhQueryOver.

    NHibernate 3.2 c pht hnh gn y vo khong thng 7 nm 2011 ii. Nhng im mi trong NHibernate 3.2

    Mapping bng code : fluent configuration, khng cn nhng file .hbm.xml Subselect: c th map SQL views nh cc entity HQL paging: TAKE v SKIP trong HQL

    Integrated bytecode provider: mt t DLL trin khaiiii. Ti sao dng NHibernate

    ORM (ObjectRelational Mapping) l gL 1 k thut chuyn i d liu gia cc h thng kiu d liu khng tng

    thch trong ngn ng lp trnh hng i tng. So snh vi k thut truyn thng

    So vi k thut truyn thng l trao i gia 1 ngn ng hng i tng v 1csdl quan h, ORM gim thiu s lng code bn phi vit 1 cch ng k .

    Nhc im ca cc cng c O/R mapping : Trong cc lnh vc c quyn hayk thut csdl c trng c ti u ha cao th hu ht cc cng c O/R mappingkhng thc hin tt vic xa b s lng ln d liu nh l stored procedures

    u im : portableiv. Bt u NHibernate u

    NHibernate l 1 d n m ngun m. Trang ch :http://www.nhforge.org Code v th vin lu ti SourceForge :

    http://sourceforge.net/projects/nhibernate/

    v. Hng tip cn

    http://www.nhforge.org/http://www.nhforge.org/http://www.nhforge.org/http://sourceforge.net/projects/nhibernate/http://sourceforge.net/projects/nhibernate/http://sourceforge.net/projects/nhibernate/http://www.nhforge.org/
  • 8/12/2019 Detain Hibernate

    4/23

    C 3 hng tip cn : To model, to map model, cu hnh NHibernate v cui cng to bng (table)

    trong database t model v mappings Cu hnh trc, sau thm mi entity v mapping tng ng cng lc, bng

    (table) trong database c to t model v mappings CSDL c sn ca ng dng khc, dng cc k thut mapping nng cao

    vi. Cc thnh phn c bn ISession : Interface ny tn t chi ph to v hy. ISession v c bn ch l

    mt unit of work (n v lm vic) ISessionFactory : Interface ny kh tn chi ph to v ng dng ca bn ch

    nn to mt instance duy nht cho mi database m bn mun truy xut IConfiguration : Theo nh ci tn ni ln c bn cht, interface

    IConfiguration cu hnh cho NHibernatev c s dng trc khi to raISessionFactory

    ITransaction : Interface ny c s dng iu khin cc tng tc vidatabase theo transactions. ITransaction ch h tr ch khng bt buc s

    dng IQuery : IQuery tn t chi ph v phi c s dng trong mt session to ra n ICriteria : Cho php bn truy vn trn cc i tng theo cc iu kin no

  • 8/12/2019 Detain Hibernate

    5/23

    Mapping 1 Model xung databasei. Mapping l g

    Trc tin, ta cn bit database schema l m t cu trc ca database, m td liu c t chc trong database v c chia vo cc bng nh th no. N cng

    ch r loi kiu d liu c th c lu tr, mi quan h gia cc bng vi nhau. Trongc s d liu quan h, 1 schema nh ngha cc bng, cc trng (cc ct), cc miquan h, cc ch mc (indexes), cc rng buc, views, cc stored procedures.

    Qua ta thy model l hng i tng, trong khi database schema l biu thquan h.

    Mapping nh ngha cch nh x 1 lp i tng xung 1 bng trong csdl, gmcc thuc tnh, cc kiu d liu vcc rng buc, cc tham chiu ..Mapping nh nghalp no map vi bng no v thuc tnh no ca lp map vi ct no ca bng

    ii. Cc loi mappingXML-based mapping

    Mi entity ca model c map vi 1 file XML document xung 1 bng trongcsdl. Cu trc ca XML document c nh ngha trong nhibernate -mapping.xsd file,c download trong NHibernate

    Cch mapping ny l cch truyn thng, rt linh hot nh ngha 1 mapping, chng ta add 1 XML file vo d n vi ui m rng l

    *.hbm.xml. File XML phi l 1 embeded resourceca d n, v ni dung ca n phitheo cu trc c nh ngha trong .xsd file ni trn.

    Attribute-based mapping

    Thay v map 1 entity trong 1 file document ring bit xung 1 bng trong csdl, thc th dng cc attribute lm vic

    Fluent mapping

    Vic mapping cc entity xung cc bng trong csdl 1 cch an ton dng fluentAPI, n lm code d c v ngn gn

    Vic mapping c nh ngha 1 lp (class) ring bit. Fluent NHibernateframework download ti (http://www.fluentnhibernate.org)

    Convention-based mapping, cn gi l mapping t ngiii. XML Mapping

    To 1 solution folder tn l Schemav add 2 file nhibernate-configuration.xsd vnhibernate-mapping.xsd trong Nhibernate download vo folder Schema, nh hnh

    sau :

    http://www.fluentnhibernate.org/http://www.fluentnhibernate.org/http://www.fluentnhibernate.org/http://www.fluentnhibernate.org/
  • 8/12/2019 Detain Hibernate

    6/23

    nh ngha 1 mapping cho 1 entity, chng ta add mi 1 file XML vo d n.File ny c ui m rng l .hbm.xml, vnn t tn ging tn ca entity. V dProduct.hbm.xml mapping Product entity.

    Chng ta cng set thuc tnh Build Actionca XML file thnh Embeded

    Resourcenh hnh sau :

  • 8/12/2019 Detain Hibernate

    7/23

    Ging nh bt k file XML document no khc, file XML mapping cng bt ubng 1 khai bo XML, n gin l 1 th xml vi 2 thuc tnh version v encoding :

    Tip theo l th hibernate-mapping. Th ny c thuc tnh xmlns, namespace v

    assembly ch ra ni m cha lp ta ang map

    1. Classes

    Th tip theo cn nh ngha l th class, th ny bo cho NHibernate 2 th - 1l ch ra lp m mapping document ny i din v 2 l ci bng trong csdl m lp map ti.

    Th lp c 2 thuc tnh (attributes) ta cn quan tm l name v table

    2. Properties

    Chng ta c th mapcc thuc tnh (properties) ca lp vo cc trng trongcsdl dng th id v th property.

  • 8/12/2019 Detain Hibernate

    8/23

    Mt trong nhng thuc tnh m rng thng dng trong th id v property lthuc tnh type. Bn c th ch cho NHibernate l bn dng kiu d liu no lu

    thng tin ca lp, v d

    Nu bn khng dng thuc tnh type th NHibernate s t xc nh kiu d liutheo phn x

    3. ID columns

    Thuc tnh u tin sau th class l bn mun map 1 thuc tnh Id. Th ny cnhiu option bn la chn, v d n gin nht l :

    Nhng dng ny ch cho NHibernate bitbn c 1 thuc tnh Id trong lp cabn, n c map xung 1 trng Id trong csdl. V y bn dng b to hilo cungcp bi Nhibernate sinh s t tng cho trng Id.

    Bn cng c th ch ra kiu d liu qua thuc tnh type.

    Ngoi ra nu bn mun i tn ct trong csdl th lm nh sau

    Cc thuc tnh ph :

    name : nh ngha tn ca ct trong csdl

    length : chiu di ca trng trong csdl

    sql-type : kiu d liu ca ct trong csdl

    not-null : rng buc ct d liu c php null hay khng. Nu not -null=true thkhng c null

    4. One-to-many relations

  • 8/12/2019 Detain Hibernate

    9/23

    Gi s ta c entity l Order c thuc tnh(property) l LineItems, l tp hp cacc LineItem entity. Mi LineItem entity c 1 property l Order tham chiu n ordercha n. By gi ta map bn pha one ca mi quan h, tc l bn LineItem entity:

    Trong th trn, thuc tnh name nh ngha tn ca property trong lp LineItem,

    thuc tnh class nh ngha lp m property tham chiu, thuc tnh column ch ra tntrng trong csdl, cha kha ngoi n bng Order. Cui cng not-null nh ngha lkha ngoi OrderId khng c rng.

    By gi ta map bn pha many. Trong Order mapping file, ta cn to 1 thnhphn bag nm gi ton b lineItems. Mt bag l cch Nhibernate lu tr 1 tp hp kth t cho php trng lp ccitem. Ta c 1 thnh phn name nh ngha tn caproperty, thnh phn con key ch ra ct trong csdl m trng ny i din

    Bn s thy th one-to-many tng t nh th many-to-one ta to bn phaone, bn bo Nhibernate v mi quan h inverse qua vic dng th inverse trongthnh phn bag. Tc l bn chuyn quyn s hu mi quan h (relationship owner)cho Order.

    Th cascade ch cho NHibernate bit x l cc i tng nh th no khi chngta delete n.

    Th lazy ch cho NHibernate dng lazy loading ngha l dng (record) s khngc ko t database hay load vo b nh cho ti khi bn dng n, mc nh lazy

    loading c m, bn mun tt th dng lazy =false.

    5. Many-to-many relations

    Quan h nhiu nhiu (many-to-many) c dng khc ph bin.

  • 8/12/2019 Detain Hibernate

    10/23

    Trong hnh trn, bng BookAuthor dng kt 2 bng Book v Author.

    NHibernate thng minh qun l nhng mi quan h nhiu nhiuTa biu din Authors trong lp Book vi 1 tp hp cc i tng Author nh sau

    public IEnumerable Authors { get; set; }

    Ta cng biu din Books trong lp Author vi 1 tp hp cc i tng Book nhsau

    public IEnumerable Books { get; set; }

    Mapping mi quan h nhiu nhiu phc tp hn quan h 1 nhiu. Chng ta dng1 th bag v c 1 th key bn trong. Chng ta cn thm thuc tnh table trong th bag cho NHibernate bit bng no lu tr d liu quan h bn trong. Thay v dng thuctnh one-to-many v many-to-one, c 2 pha ta dng thnh phn many-to-manyBn Book mapping file :

    Bn Author mapping file :

  • 8/12/2019 Detain Hibernate

    11/23

    6. Mapping value objects

    map cc thuc tnh ca value object, chng ta dng th component, v dchng ta s map thuc tnh name ca entity Customer nh sau :

    7. Hng dn tng bc mapping vi XMLTo mi 1 project, chn Console Application, t tn lXmlMappingSample.

    Add reference n assembly NHibernate.dll vo d nTrong ca s Solution Explorer, click phi v solution, chn Add|New

    Folder, t tn l SchemaClick phi Schema folder, chn Add|Existing Item, add file nhibernate-mapping.xsd trong th mc NHibernate-3.1.0.GA-bin\lib download ,vo schema folder

    To th mc tn Domain trong d nTo cc lp Customer, Order v LineItem trong th mc Domain ca dn. Cc lp ny c code nh sau public class Customer

    {

    public virtual int Id { get; set; }

    public virtual string CustomerName { get; set; }}

    public class Order

    {

    public virtual int Id { get; set; }

    public virtual DateTime OrderDate { get; set; }

    public virtual Customer Customer { get; set; }

    public virtual IList LineItems { get; set; }

    }

    public class LineItem

    {

    public virtual int Id { get; set; }

    public virtual int Quantity { get; set; }

    public virtual decimal UnitPrice { get; set; }

  • 8/12/2019 Detain Hibernate

    12/23

    public virtual string ProductCode { get; set; }

    }

    Add xml file vo folder Domain tn file l Customer.hbm.xml, v thuc tnhBuild Actionca file phi c set l Embeded Resource. cha codenh sau :

    Tng t cch to cho Order.hbm.xml v LineItem.hbm.xml. nh setthuc tnh Build Actionca file phi c set l Embeded Resource

  • 8/12/2019 Detain Hibernate

    13/23

    Khai bo using trong file Program.cs

    using System;

    using NHibernate.Cfg;

    using NHibernate.Cfg.Loquacious;

    using NHibernate.Dialect;

    using NHibernate.Driver;using NHibernate.Tool.hbm2ddl;

    using XmlMappingSample.Domain;

    Trong phng thc Main ca Program.cs , thm code to i tngNHibernate configuration dng fluent API c cung cp bi NHibernatenh sau :

    var configuration = new Configuration();

    configuration.DataBaseIntegration(db =>

    {

    db.Dialect();db.Driver();

    });

    Thm code add tt c XML mapping file cu hnh nh sau : configuration.AddAssembly(typeof (Customer).Assembly);

    Thm code to script to SQL schema nh sau : var exporter = new SchemaExport(configuration);

    exporter.Execute(true, false, false);

    iv. XML Mapping

    To 1 solution folder tn l Schemav add 2 file nhibernate-configuration.xsd vnhibernate-mapping.xsd trong Nhibernate download vo folder Schema, nh hnhsau :

  • 8/12/2019 Detain Hibernate

    14/23

    nh ngha 1 mapping cho 1 entity, chng ta add mi 1 file XML vo d n.File ny c ui m rng l .hbm.xml, v nn t tn ging tn ca entity. V dProduct.hbm.xml mapping Product entity.

    Chng ta cng set thuc tnh Build Actionca XML file thnh Embeded

    Resourcenh hnh sau :

  • 8/12/2019 Detain Hibernate

    15/23

    Ging nh bt k file XML document no khc, file XML mapping cng bt ubng 1 khai bo XML, n gin l 1 th xml vi 2 thuc tnh version v encoding :

    Tip theol th hibernate-mapping. Th ny c thuc tnh xmlns, namespace v

    assembly ch ra ni m cha lp ta ang map

    8. Classes

    Th tip theo cn nh ngha l th class, th ny bo cho NHibernate 2 th - 1l ch ra lp m mapping document ny i din v 2 l ci bng trong csdl m lp map ti.

    Th lp c 2 thuc tnh (attributes) ta cn quan tm l name v table

    9. Properties

    Chng ta c th map cc thuc tnh (properties) ca lp vo cc trng trongcsdl dng th id v th property.

  • 8/12/2019 Detain Hibernate

    16/23

    Mt trong nhng thuc tnh m rng thng dng trong th id v property lthuc tnh type. Bn c th ch cho NHibernate l bn dng kiu d liu no lu

    thng tin ca lp,v d

    Nu bn khng dng thuc tnh type th NHibernate s t xc nh kiu d liutheo phn x

    10. ID columns

    Thuc tnh u tin sau th class l bn mun map 1 thuc tnh Id. Th ny cnhiu option bn la chn, v d n gin nht l :

    Nhng dng ny ch cho NHibernate bit bn c 1 thuc tnh Id trong lp cabn, n c map xung 1 trng Id trong csdl. V y bn dng b to hilo cungcp bi Nhibernate sinh s t tng cho trng Id.

    Bn cng c th ch ra kiu d liu qua thuc tnh type.

    Ngoi ra nu bn mun i tn ct trong csdl th lm nh sau

    Cc thuc tnh ph :

    name : nh ngha tn ca ct trong csdl

    length : chiu di ca trng trong csdl

    sql-type : kiu d liu ca ct trong csdl

    not-null : rng buc ct d liu c php null hay khng. Nu not-null=true thkhng c null

    11. One-to-many relations

  • 8/12/2019 Detain Hibernate

    17/23

    Gi s ta c entity l Order c thuc tnh(property) l LineItems, l tp hp cacc LineItem entity. Mi LineItem entity c 1 property l Order tham chiu n ordercha n. By gi ta map bn pha one ca mi quan h, tc l bn LineItem entity:

    Trong th trn, thuc tnh name nh ngha tn ca property trong lp LineItem,

    thuc tnh class nh ngha lp m property tham chiu, thuc tnh column ch ra tntrng trong csdl, cha kha ngoi n bng Order. Cui cng not-null nh ngha lkha ngoi OrderId khng c rng.

    By gi ta map bn pha many. Trong Order mapping file, ta cn to 1 thnhphn bag nm gi ton b lineItems. Mt bag l cch Nhibernate lu tr 1 tp hp kth t cho php trng lp cc item. Ta c 1 thnh phn name nh ngha tn caproperty, thnh phn con key ch ra ct trong csdl m trng ny i din

    Bn s thy th one-to-many tng t nh th many-to-one ta to bn phaone, bn bo Nhibernate v mi quan h inverse qua vic dng th inverse trongthnh phn bag. Tc l bn chuyn quyn s hu mi quan h (relationship owner)cho Order.

    Th cascade ch cho NHibernate bit x l cc i tng nh th no khi chngta delete n.

    Th lazy ch cho NHibernate dng lazy loading ngha l dng (record) s khngc ko t database hay load vo b nh cho ti khi bn dng n, mc nh lazy

    loading c m, bn mun tt th dng lazy =false.

    12. Many-to-many relations

    Quan h nhiu nhiu (many-to-many) c dng khc ph bin.

  • 8/12/2019 Detain Hibernate

    18/23

    Trong hnh trn, bng BookAuthor dng kt 2 bng Book v Author.

    NHibernate thng minh qun l nhng mi quan h nhiu nhiu Ta biu din Authors trong lp Book vi 1 tp hp cc i tng Author nh sau

    public IEnumerable Authors { get; set; }

    Ta cng biu din Books trong lp Author vi 1 tp hp cc i tng Book nhsau

    public IEnumerable Books { get; set; }

    Mapping mi quan h nhiu nhiu phc tp hn quan h 1 nhiu. Chng ta dng1 th bag v c 1 th key bn trong. Chng ta cn thm thuc tnh table trong th bag cho NHibernate bit bng no lu tr d liu quan h bn trong. Thay v dng thuctnh one-to-many v many-to-one, c 2 pha ta dng thnh phn many-to-manyBn Book mapping file :

    Bn Author mapping file :

  • 8/12/2019 Detain Hibernate

    19/23

    13. Mapping value objects

    map cc thuc tnh ca value object, chng ta dng th component, v dchng ta s map thuc tnh name ca entity Customer nh sau :

    14.Hng dn tng bc mapping vi XMLTo mi 1 project, chn Console Application, t tn lXmlMappingSample.

    Add reference n assembly NHibernate.dll vo d nTrong ca s Solution Explorer, click phi v solution, chn Add|New

    Folder, t tn l SchemaClick phi Schema folder, chn Add|Existing Item, add file nhibernate-mapping.xsd trong th mc NHibernate-3.1.0.GA-bin\lib download ,vo schema folder

    To th mc tn Domain trong d nTo cc lp Customer, Order v LineItem trong th mc Domain ca dn. Cc lp ny c code nh sau public class Customer

    {

    public virtual int Id { get; set; }

    public virtual string CustomerName { get; set; }}

    public class Order

    {

    public virtual int Id { get; set; }

    public virtual DateTime OrderDate { get; set; }

    public virtual Customer Customer { get; set; }

    public virtual IList LineItems { get; set; }

    }

    public class LineItem

    {

    public virtual int Id { get; set; }

    public virtual int Quantity { get; set; }

    public virtual decimal UnitPrice { get; set; }

  • 8/12/2019 Detain Hibernate

    20/23

    public virtual string ProductCode { get; set; }

    }

    Add xml file vo folder Domain tn file l Customer.hbm.xml, v thuc tnhBuild Actionca file phi c set l Embeded Resource. cha codenh sau :

    Tng t cch to cho Order.hbm.xml v LineItem.hbm.xml. nh setthuc tnh Build Actionca file phi c set l Embeded Resource

  • 8/12/2019 Detain Hibernate

    21/23

    Khai bo using trong file Program.cs

    using System;

    using NHibernate.Cfg;

    using NHibernate.Cfg.Loquacious;

    using NHibernate.Dialect;

    using NHibernate.Driver;using NHibernate.Tool.hbm2ddl;

    using XmlMappingSample.Domain;

    Trong phng thc Main ca Program.cs , thm code to i tngNHibernate configuration dng fluent API c cung cp bi NHibernatenh sau :

    var configuration = new Configuration();

    configuration.DataBaseIntegration(db =>

    {

    db.Dialect();db.Driver();

    });

    Thm code add tt c XML mapping file cu hnh nh sau :configuration.AddAssembly(typeof (Customer).Assembly);

    Thm code to script to SQL schema nh sau : var exporter = new SchemaExport(configuration);

    exporter.Execute(true, false, false);

  • 8/12/2019 Detain Hibernate

    22/23

    2.Kin trc NHibernate

    Kin trc ca Hibernate bao gm 3 phn:

    Qun l kt ni:Dch v qun l kt ni ca Hibernate cung cp vic qun l ht schiu qu cc connection n database. Database connection lun l phn t v nhiuri ro trong vic kim sot, chng ta tn nhiu ti nguyn m v ng mt connection,hn na, vic x l d liu phc tp v c th dn n qun st vic ng kt ni hocng mt cch khng hp l. iu ny hon ton khng n gin v dn n mt ngdng v. (Mt v d l ng nhiu kt ni trong 1 khitry...catch)

    Qun l transation (giao tc):dch v qun l giao tc cung cp kh nng cho php userthi hnh nhiu pht biu (statement) vo mt thi im.

    Object relational mapping:

    Cng ngh mapping d liu di database thnh d liu trn object. Hibernate s s dng

  • 8/12/2019 Detain Hibernate

    23/23

    SELECT, INSERT, UPDATE v DELETE trn cc records v a thao tc didatabase tng ng vi vic thao tc tn Object java.

    Mc ch sau cng ca hibernate l ORM, nhng n phi thm vo cc dch v qun lConnnection v Transaction v pht sinh t vn performance v s kh khn khi t mnh x l

    nhng dch v ny trn Object c persistent. Hibernate buc phi s dng nhng cng c qunl kt ni v transationca bn th 3 hon thin m hnh ca mnh. Mt v d l ApacheDBCP thng c s dng trong connection pooling vi Hibernate.Hibernate rt uyn chuyn, n c th tch hp vi nhng cng ngh khc nhn c s h trtt nht, tiu biu c Spring.