(OBJETO DE ACCESO A DATOS) JO5F LJl5 MF5A ANDkF5 klCAkDO IOkkF5 CLAJDlA FAIklClA OVlFDO JFNNlFFk ANDkFA IFNOklO PATRON DAO (OBJETO DE ACCESO A DATOS) Dofo Access Objecf (DAO, Objefo de Acceso o Dofos) es un componenfe de soffwore que sum|n|sfro uno |nferfoz comn enfre |o op||coc|n y uno o ms d|spos|f|vos de o|mocenom|enfo de dofos, fo|es como uno 8ose de dofos o un orch|vo. PATRON DAO (OBJETO DE ACCESO A DATOS) F| pofron DAO es uno so|uc|on o| prob|emo de| d|ferenc|o| de |mpedonc|o enfre un progromo de op||coc|on or|enfodo o objefos y uno bose de dofos re|oc|ono|, emp|eondo un|comenfe |o |nferfoz de progromoc|on (AFl) nof|vo de| monejodor de bose de dofos, o o|gun ofro susf|fufo como e| OD8C, D8l, enfre ofros. PATRON DAO (OBJETO DE ACCESO A DATOS) Ut|||zcnc: e| pct|cn Dctc Acce:: Ccect (DAC} pc|c. cc:t|ce| y enccp:u|c| |c: ccce:c:. ge:t|cnc| |c ccnex|cne: c |c |uente ce cctc: cctene| |c: cctc: c|nccenccc:. PATRON DAO (OBJETO DE ACCESO A DATOS) UN EJEMPLO: Supcngcmc: ue Ienemc: |c :iguienIe IcL|c: PATRON DAO (OBJETO DE ACCESO A DATOS) CREATE TABLE ciudades ( nombre varchar(80), departamento varchar(80) ); PATRON DAO (OBJETO DE ACCESO A DATOS) Fntcnce: cnc|c tenenc: que c|ec| 2 c|c:e: pc| cccc |e|cc|n ccn |c que nue:t|c cp||ccc|n tenc|c ccce:c. e| ccce:c c cctc: y e| t|cn:pc|te ce cctc:. PATRON DAO (OBJETO DE ACCESO A DATOS) Clase de transporte de datos: public class Ciudad { //atributos = campos de la relacion String nombre; String departamento; //metodos String getNombre() { ... } String getDepartamento() { ... } } PATRON DAO Clase de acceso a Datos public class CiudadesDAO { Ciudad ciudad; ... // establece conexin a la base de datos //implementa opera. basicas como insert, update, delete void insert (){...} void delete(){...} Ciudad find() { ... SELECT * FROMciudades WHERE nombre ... } } PATRON DAO (OBJETO DE ACCESO A DATOS) S|n encc|gc. |c: cp||ccc|cne: ce| nuncc |ec| nc e:tcn ccnpue:tc: pc| e| ccce:c c unc :|np|e tcc|c. pc|c en||entc| e:tc :|tucc|n :e ut|||zc e| pct|n Fcctc|y pc|c |np|enentc| unc |cc||cc ce ccetc: DAC. PATRON DAO (OBJETO DE ACCESO A DATOS) FkO8LEMAS A kESOLVEk Si:Iemc: pccc mccu|cre:. Si:Iemc: cif|ci|menIe mcnIeniL|e:. D|st|ntos responsob|||dodes no deben ser de|egodos en |o m|smo c|ose. E:Ie e: un principic Lc:icc ce| ce:crrc||c ce :cfIwcre, prcpue:Ic criginc|menIe pcr Dijk:Irc en |c: cnc: 70 {cunue nc exccIcmenIe en e:Ic fcrmc), ue |c ||cmc :epc|ct|cn c| ccnce|n: c :epcrccicn ce incumLencic:. PATRON DAO (OBJETO DE ACCESO A DATOS) PATRON DAO (OBJETO DE ACCESO A DATOS) En generc| {cunue e:Ic e: unc ceci:icn ce ci:enc), pcr cccc cLjeIc ce negccic en nue:Irc :i:Iemc, crecremc: un D/C ci:IinIc. En nue:Irc cc:c ccemc: ce| Fre:Icmc:D/C pccr|cmc: Iener IcmLin un U:ucricD/C y un LiLrcD/C. /unue cu| e| c|mccn ce ccIc: :e repre:enIc ccmc unc Lc:e ce ccIc: ccmpcIiL|e JD8C nc Iiene pcr u :er :iempre c:| {U:c ce| pcIrcn Fcctc|y pcrc pccer in:Icncicr |c: D/C:) recuciencc c| mcximc |c cepencencic ce| D/C ccncreIc c crecr {pcr ejemp|c ce MySCL, Crcc|e, XML, ficherc .prcperIie:, ...) Lc infcrmccicn ue cevue|ve c :e |e pc:c c| D/C :e enccp:u|c en cLjeIc: ce Iipc t|cn:|e| ccect {en nue:Irc cc:c |c c|c:e Fr:Icmc), ue, :imp|ificcncc, nc :cn mc: ue ccnIeneccre: ce infcrmccicn. PATRON DAO (OBJETO DE ACCESO A DATOS) kELACIN CON OIkOS FAIkONES E| D/C :e re|ccicnc ccmnmenIe ccn |c: :iguienIe: pcIrcne:: Ircn:fer cLjecI: |c infcrmccicn ue :e env|c/reciLe ce| D/C :e empcueIc en e:Ic: cLjeIc:. FccIcry: ccn e| cLjeIc ce ccn:eguir |c incepencencic ce| c|mccn ce ccIc:, ccmnmenIe :e u:c e:Ie pcIrcn pcrc in:Icncicr |c: D/C:. PATRON DAO (OBJETO DE ACCESO A DATOS) VENIAJAS Cuc|qu|e| ccetc nc |equ|e|e ccncc|n|entc c||ectc ce| ce:t|nc ||nc| ce |c |n|c|ncc|n que :e ncn|pu|c Se ccc en n|ve| ce cccp|cn|entc ent|e c|c:e:. |ecuc|encc |c ccnp|e|ccc ce |ec||zc| ccnc|c: Se c|:|c |c: ccnex|cne: c |c |uente ce cctc: en unc ccpc |cc||nente |cent|||ccc|e y ncnten|c|e. Bibliografa http://www.programacion.com/java/tutorial/patrones2/8/ http://www.glib.org.mx/article.php?story=2006070218511041 8 http://en.wikipedia.org/wiki/Software_patt ern http://java.sun.com/blueprints/corej2eepat terns/Patterns/DataAccessObject.html