Arquitectura Java Solida - Cecilio Alvarez Caules

Embed Size (px)

Citation preview

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    1/405

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    2/405

    !"#$%&'(&$") +),)

    2

    !"#$%&'(&$"! *!+! ,-.%/!

    !"#$%$& (%)*+", !*-%".

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    3/405

    !!!"#$%&'()*(&$#+#,#"*-.

    3

    2012 Cecilio lvarez Caules. Todos los derechos reservados.

    ISBN : 978-1-291-16766-5

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    4/405

    !"#$%&'(&$") +),)

    4

    !"#$%&'()(&*+,-

    "#$% &'()* %#$+ ,%,'-+,* + &+ -*./0',+, ,% ,%#+))*&&+,*)%# 1"" ,% 2+0$+()'+ 3/%#$*4/% ./-5*# ,% &*# -+36$/&*# #% (+#+0 %0 )%7&%8'*0%# 7/0,+.%0$+,+# %0 &+# ,'#$'0$+#

    3)%9/0$+# 4/% #% .% 5+0 7*)./&+,* %#$*# +:*# %0 &*# -/)#*# ; -*0#/&$*)6+# )%+&''-5+# +3*)$+-'*0%# .% 5+0 3)*3*)-'*0+,* /0 +0'.* %#%0-'+& 3+)+

    %#-)'(') %#$% &'()*=

    ?9)+,%

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    5/405

    !!!"#$%&'()*(&$#+#,#"*-.

    5

    "#$%&'()'%#" *"+" ,-.&/" 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

    )234546 7589:2; )9

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    6/405

    !"#$%&'(&$") +),)

    6

    E0 ):2934DA ?2 4A9 Y&A=2:B9:.4Q:60Z=F[ 000000000000000000000000000000000000000000000000000000 KL

    C0 ):2934DA ?2 59 F9>4A9 O6=B:9:.4Q:6=0Z=F 000000000000000000000000000000000000000000000000000000000 KV

    #2=6:_9 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 JM

    C0 (5 F:4A34F46 /#\ ] 59= 36A=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    7/405

    !!!"#$%&'()*(&$#+#,#"*-.

    7

    V0 "P9?4: F9>4A9 ,9589:.4Q:60Z=F 0000000000000000000000000000000000000000000000000000000000000000000000000000 RK

    a0 "P9?4: @`B6?6 Q6:490 0000000000000000000000000000000000000000000000000000000000000000 RJ

    #2=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    8/405

    !"#$%&'(&$") +),)

    8

    10 )6A=B:

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    9/405

    !!!"#$%&'()*(&$#+#,#"*-.

    9

    EM0N4Q2:A9B2 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 EJ1

    E0 &AB:6?

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    10/40

    !"#$%&'(&$") +),)

    10

    10 O4>:934DA ?2 "F543934DA 9 *W" 00000000000000000000000000000000000000000000000000000000000000000000000000 1MC

    K0 O9A2Z6 ?2 (b32F346A2= 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1MR

    #2=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    11/40

    !!!"#$%&'()*(&$#+#,#"*-.

    11

    #2= H:9@2I6:d 000000000000000000000000000000000000000000 1RM

    E0 &AB:6? 2 4A]2334DA ?2 ?2F2A?2A3490 0000000000000000000000000000000000000000000000000000000000000000 1VM

    K0 ,F:4A> ] H93B6:_9 F9:9 9F5439346A2= I2Q 0000000000000000000000000000000000000000000000000000000 1VK

    C0 ,F:4A> 4A]2334DA ?2 ?2F2A?2A349 ] )9F9= /"U 000000000000000000000000000000000000000000 1VK

    #2= '2@F59B2= 0000000000000000000000000000000000000000000000000000000000000000 1VV

    E0 (5 F9B:DA '2@F59B2 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1aM

    10 ,F:4A> ] F59AB4559=0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1aR

    K0 ,F:4A> N2:2A349 W59AB4559= ] */"/"U,

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    12/40

    !"#$%&'(&$") +),)

    12

    #2=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    13/40

    !!!"#$%&'()*(&$#+#,#"*-.

    13

    10 &AB:6? ] W665= 00000000000000000000000000000000000000000000000000000000000000000000000000000 KaK

    10 W665 ?2 36A2b46A2= ] '6@39B 0000000000000000000000000000000000000000000000000000000000000000000000000000 KaC

    K0 )6AH4> 8_9 *m/&0 00000000000000000000000000000000000000000000000000000000000000000000 KaL

    #2=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    14/40

    !"#$%&'(&$") +),)

    14

    !"#$%&'(()*"

    R+ ',%+ *)'9'0+& ,% %#-)'(') %#$% &'()* D'%0% ,% &+# ,'#$'0$+# 7*).+-'*0%# ; -*0#/&$*)6+##*()% 1"" 4/% 5% )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    15/40

    !!!"#$%&'()*(&$#+#,#"*-.

    15

    0# 1*23*.()(*&+%, 4* ,%5+67.*

    W0+ D%< 4/% $%0%.*# -&+)*# &*# -*0*-'.'%0$*# 0%-%#+)'*# 3+)+ +(*),+) -*0 9+)+0$6+#&*# ,'#$'0$*# -+36$/&*#@ D+.*# + &'#$+) %& #*7$G+)% 4/% /$'&'X Y=Z * 1>X Y=Z

    L')%L*8

    [%( >%D%&*3%)

    "-&'3#% 1""

    T*.-+$ \

    I;O]R

    W(/0$/ Y^=Y^ * ['0,*G# \

    8# 9&,+7:7'(;& 4*: *&+%.&%

    ?0$%# ,% -*.%0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    16/40

    !"#$%&'(&$") +),)

    16

    M# $%&5(N3.7'(;& 4*: *&+%.&%

    V%.*# '0#$+&+,* ;+ $*,* %& #*7$G+)% 4/% 0%-%#'$+.*# ; +-+(+.*# ,% +()') %& %-&'3#%

    _D%) '.+9%0`

    "# .*.%0$* ,% '0$%9)+) "-&'3#% 1"" -*0 T*.-+$ \= "#$* 3/%,% )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    17/40

    !!!"#$%&'()*(&$#+#,#"*-.

    17

    "&%9',* %& $'3* ,% #%)D',*)@ 0*# #*&'-'$+)F 4/% %#3%-'7'4/%.*# %0 4/B ,')%-$*)'* #%

    %0-/%0$)+ '0#$+&+,* _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    18/40

    !"#$%&'(&$") +),)

    18

    O%&%--'*0+.*# %& ,')%-$*)'* ; 3*,%.*# 3/+) cL'0'#5d = "0 &+ 3%#$+:+ ,% #%)D',*)%# 0*#

    +3+)%-%)F %& 0/%D* #%)D',*) 3+)+ 4/% 3*,+.*# /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    19/40

    !!!"#$%&'()*(&$#+#,#"*-.

    19

    W0+ D%< 4/% 5+;+.*# %&%9',* %& $'3* ,% 3)*;%-$*@ %-&'3#% 0*# #*&'-'$+)F 4/% &* +&*J%.*#%0 +&9/0* ,% &*# #%)D',*)%# 4/% $%0%.*# ,%7'0',*#= "0 0/%#$)* -+#* T*.-+$ \ _D%)

    '.+9%0`

    T)+# )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    20/40

    !"#$%&'(&$") +),)

    20

    !"#$%"&

    "#$% -+36$/&* 5+ #%)D',* 3+)+ '0$)*,/-') &*# *(J%$'D*# ,%& &'()* +#6 -*.* 3+)+-*07'9/)+)%& %0$*)0* ,% ,%#+))*&&* 4/% D+.*# + /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    21/40

    !!!"#$%&'()*(&$#+#,#"*-.

    21

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    22/40

    !"#$%&'(&$") +),)

    22

    !!!"#$

    "0 %#$% -+36$/&* D+.*# + -*.%0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    23/40

    !!!"#$%&'()*(&$#+#,#"*-.

    23

    ?-+(+.*# ,% ,%7'0') %& -*0J/0$* ,% $+)%+# + )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    24/40

    !"#$%&'(&$") +),)

    24

    "& 7*)./&+)'* #% %0-/%0$)+ /('-+,* ,%0$)* ,% /0 3)*;%-$* G%( ,% %-&'3#% _D%) '.+9%0`

    0# U7:(47'(%&*, 4*

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    25/40

    !!!"#$%&'()*(&$#+#,#"*-.

    25

    2E,'9* Y=eC _L*)./&+)'*R'()*^e1+D+O-)'3$=5$.&`

    function validacion() {

    if (document.forms[0].isbn.value == "")alert("datos no validos");

    elsedocument.forms[0].submit();

    }Formulario LibroFormulario alta LibroISBN:


    Titulo:
    Categoria:

    V%.*# +:+,',* /0+ 7/0-'E0 ,% D+&',+-'E0 ; /0 %D%0$* c*0-&'-Hd +& 7*)./&+)'*@ %& -/F& +3+)$') ,% %#$% .*.%0$* *(&'9+ + 4/% '0$)*,/

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    26/40

    !"#$%&'(&$") +),)

    26

    M# X,% '%..*'+% 4* *+(23*+7,

    "# 7)%-/%0$% %0-*0$)+).*# -*0 #'$/+-'*0%# %0 &+# 4/%@ +/04/% #% /#+ /0+ $%-0*&*96+@B#$+ 0* #% -*0*-% %0 3)*7/0,',+, =l#$% %# %& -+#* ,% &+ 3F9'0+ 4/% +-+(+.*# ,% -)%+)@;+ 4/% /#+.*# /0+ %$'4/%$+ YZ"P ,% -+(%-%)+ 3+)+ +#'90+) /0 $6$/&* +& 7*)./&+)'* ;

    %$'4/%$+# YE.P 3+)+ #%3+)+) %& -*0$%0',*@ +&9* 4/% 0* %# -*))%-$*@ ;+ 4/% %8'#$%0%$'4/%$+# .F# %#3%-'7'-+# 4/% 3/%,%0 )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    27/40

    !!!"#$%&'()*(&$#+#,#"*-.

    27

    ^# V''*,(E(:(474 4* :7 -7N(&7

    "0 %#$*# .*.%0$*# 0/%#$)+ 3+9'0+ VTIR -+)%-% ,% &+# %$'4/%$+# 5+('$/+&%# ,%+--%#'('&',+,@ -*.* 3*) %J%.3&* &+ %$'4/%$+ Y:7E*:P_ &+# -/F&%# ,%7'0',+# %0 %&7*)./&+)'* 3%).'$%0 /0+ .%J*) +--%#'('&',+, + /#/+)'*# ,'#-+3+-'$+,*#= P+)+ #*&D%0$+)

    %#$% 3)*(&%.+ D+.*# + +:+,')&+# + 0/%#$)* -E,'9* _D%) -E,'9*`=

    2E,'9* Y=hC _L*)./&+)'*R'()*^h?--%#'('&',+,=5$.&`

    Formulario alta libro

    ISBN:

    Titulo:

    Categoria :

    >%#3/B# ,% +:+,') %#$+# %$'4/%$+#@ 3*,%.*# 3+#+) + &+# #'9/'%0$%# $+)%+# %0-+)9+,+#

    ,% .%J*)+) %& /#* ,% %#$F0,+)%# + 0'D%& ,% VTIR=

    ?# X,% 4* `TGIL '%)% *,+a&47.#

    iVTIR %# 5*; 3*) 5*; %& %#$F0,+) 4/% #% /$'&'S2TUP" +& ,*-/.%0$*

    f= ?:+,') %#3+-'* ,% 0*.()%# _8.& 0+.%#3+-%`

    g= T*,+# &+# %$'4/%$+# ,%(%0 #%) ,%-&+)+,+# %0 .'0A#-/&+#

    h= T*,+ %$'4/%$+ +('%)$+ ,%(% #%) -%))+,+

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    28/40

    !"#$%&'(&$") +),)

    28

    ?/04/% %0 3)'0-'3'* 3+)%-%0 (+#$+0$%# -+.('*#@ #*0 )F3',*# ,% +3&'-+)= k+.*# + D%)

    -*.* 4/%,+ .*,'7'-+,* 0/%#$)* -E,'9* 3+)+ -/.3&') -*0 iVTIR=

    2E,'9* Y=ZC _L*)./&+)'*R'()*^ZiVTIR=5$.&`

    1

    2

    3

    Ejemplo01

    Formulario alta libro

    V%.*# +:+,',* /0+ #%)'% ,% -+(%-%)+# +& ,*-/.%0$* 4/% 3%).'$%0 D+&',+) %&

    7*)./&+)'* -*.* iVTIR ; 0*# 5%.*# %0-+)9+,* $+.('B0 ,% +()') ; -%))+)-*))%-$+.%0$% &+# %$'4/%$+# VTIR= "0 %#$*# .*.%0$*# 3*,%.*# 0/%#$)* ,*-/.%0$*-/.3&% &*# %#$F0,+)%# +&9* 4/% 3*,%.*# -*.3)*(+) #' /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    29/40

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    30/40

    !"#$%&'(&$") +),)

    30

    >'-5+ '0#$)/--'E0 #')D% 3+)+ +--%,%) + /0 %&%.%0$* ,%$%).'0+,* ,%& ,*-/.%0$* +$)+DB# ,% #/ ',%0$'7'-+,*) m ,% %#$+ 7*).+@ &+ 7/0-'E0 ,% 1+D+O-)'3$ 3+#+)F + $%0%) &+

    #'9/'%0$% %#$)/-$/)+=

    2E,'9*Y=nC _L*)./&+)'*R'()*^j1+D+O-)'3$>SI=5$.&`

    function validacion() {var isbn= document.getElementById("isbn");var miformulario=document.getElementById("miformulario");if(isbn.value==""){

    alert("datos no validos");return false;

    }else{miformulario.submit();

    }}

    "& /#* ,% >SI + 0'D%& ,% 1+D+O-)'3$ D'#'(&%.%0$% 0*# 3%).'$% 9+0+) %0 -&+)',+, ;#%0-'&&%< + &+ 5*)+ ,% -*0#$)/') 0/%#$)+# 7/0-'*0%# ,% D+&',+-'E0= R&%9+,*# + %#$% 3/0$*@5%.*# $%).'0+,* ,% ,%7'0') &+# $+)%+# +#*-'+,+# +& /#* ,% %#$F0,+)%#= R+ A&$'.+ $+)%+3%0,'%0$% %#$F *)'%0$+,+ + .%J*)+) %& 3)*3'* 7/0-'*0+.'%0$* ,% &+ 3F9'0+ %0 %& -+#* ,%

    4/% %& 0+D%9+,*) 0* #*3*)$% 1+D+O-)'3$ _/#/+)'*# -*0 ,'#-+3+-',+,`=

    b# X,% 4*

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    31/40

    !!!"#$%&'()*(&$#+#,#"*-.

    31

    T)+# ,%#5+('&'$+) %& 1+D+O-)'3$@ 0*# 3*,%.*# ,+) -/%0$+ ,% 4/% %& (*$E0 ,%& 7*)./&+)'*5+ ,%J+,* ,% 7/0-'*0+)= "#$* #% ,%(% + 4/% 0/%#$)* 7*)./&+)'* 0* 5+ #',* ,'#%:+,*3+)+ #*3*)$+) /0+ ,%9)+,+-'E0 -*))%-$+ ,% 1+D+O-)'3$ ; ,%J+ ,% 7/0-'*0+) %0 +/#%0-'+,% B#$%= P+)+ -*0#%9/') 4/% %& 7*)./&+)'* #% ,%9)+,% %# 0%-%#+)'* )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    32/40

    !"#$%&'(&$") +),)

    32

    2E,'9*Y=YeC _D+&',+-'*0=J#`

    W0+ D%< )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    33/40

    !!!"#$%&'()*(&$#+#,#"*-.

    33

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    34/40

    !"#$%&'(&$") +),)

    34

    !!!"#" %&'#&' (")&*

    "0 %& -+36$/&* +0$%)'*) 5%.*# -*0#$)/',* /0 7*)./&+)'* VTIR= "0 %#$% -+36$/&* 0*#%0-+)9+)%.*# ,% -*0#$)/') &+# 3)'.%)+# 3F9'0+# 1OP ,% 0/%#$)+ +3&'-+-'E0@ B#$+# #%%0-+)9+)F0 ,% 9/+),+) &*# ,+$*# ,% 0/%#$)*# &'()*# %0 (+#% ,% ,+$*#@ +#6 -*.* ,%.*#$)+) /0+ &'#$+ -*0 &*# &'()*# 4/% 5%.*# +&.+-%0+,* %0 B#$+= ? -*0$'0/+-'E0 #%

    ,%$+&&+0 &*# *(J%$'D*# ,%& -+36$/&*=

    Objetivos:

    2)%+) &+ 3+9'0+ cb0#%)$+)R'()*=J#3d 4/% #% %0-+)9+)F ,% '0#%)$+) &'()*# %00/%#$)+ (+#% ,% ,+$*#=

    2)%+) &+ 3+9'0+ cI*#$)+)R'()*#=J#3d 4/% #% %0-+)9+)F ,% 3)%#%0$+) /0+ &'#$+ -*0&*# &'()*# +&.+-%0+,*# %0 &+ (+#% ,% ,+$*#=

    Tareas:

    Y= 2*0#$)/--'E0 ,% &+ $+(&+ R'()*# %0 /0 #%)D',*) I;O]R=e= b0#$+&+-'E0 ,% /0 ,)'D%) 1>M2 0+$'D* 3+)+ +--%,%) + &+ (+#% ,% ,+$*# ,%#,% 1+D+=f= 2)%+-'E0 ,% &+ 3+9'0+ cb0#%)$+)R'()*=J#3d=

    g= 2)%+-'E0 ,% &+ 3+9'0+ cI*#$)+)R'()*#=J#3d=

    "# $.*7'(;& 4* 3&7 +7E:7 L(E.%,

    P+)+ )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    35/40

    !!!"#$%&'()*(&$#+#,#"*-.

    35

    b#(0C D+)-5+) _Y^`=

    T'$/&*C D+)-5+) _f^`=

    2+$%9*)6+C D+)-5+) _f^`=

    ? -*0$'0/+-'E0 #% ./%#$)+ /0+ '.+9%0 -*0 &+ $+(&+ ;+ -)%+,+ ,%0$)* ,%& %#4/%.+=

    T)+# -)%+) &+ $+(&+ %0 &+ (+#% ,% ,+$*#@ &+ #'9/'%0$% $+)%+ 4/% 0*# +;/,+ + '0#$+&+) /0

    ,)'D%) 1>M2=

    0# 9&,+7:7. *: 4.(/*.

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    36/40

    !"#$%&'(&$") +),)

    36

    8# $.*7'(;& 4* :7 -aN(&7 \9&,*.+7.L(E.%#R,-]

    R+ 3F9'0+ cb0#%)$+)R'()*=J#3d )%-*9%)F &*# ,+$*# %0D'+,*# 3*) %& 7*)./&+)'* -*0#$)/',*%0 %& -+36$/&* +0$%)'*) % '0#%)$+)F /0 0/%D* )%9'#$)* %0 &+ (+#% ,% ,+$*# ="& #'9/'%0$%

    ,'+9)+.+ ./%#$)+ &+ )%&+-'E0 %0$)% &*# $)%# %&%.%0$*#=

    2*.* 3*,%.*# *(#%)D+) 5%.*# )%0*.()+,* %& 7'-5%)* ,%& -+36$/&* +0$%)'*) -*.*

    L*)./&+)'*b0#%)$+)R'()*=J#3

    ?#'90F0,*&% =J#3 3+)+ 4/%@ + 3+)$') ,% %#$*# .*.%0$*#@ $*,+# &+# 3+9'0+# -*.3+)$+0 &+.'#.+ %8$%0#'E0= "# %& .*.%0$* ,% 3+#+) + -*0#$)/') &+ 3+9'0+ cb0#%)$+)R'()*=J#3d@ +

    -*0$'0/+-'E0 #% ./%#$)+ #/ -E,'9* 7/%0$%=

    2E,'9* e=YC _b0#%)$+)R'()*=J#3`

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    37/40

    !!!"#$%&'()*(&$#+#,#"*-.

    37

    int filas=0;try {

    //2Class.forName("com.mysql.jdbc.Driver");conexion = DriverManager.getConnection(

    "jdbc:mysql://localhost/arquitecturajava",

    "root","java");

    sentencia = conexion.createStatement();//3String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";consultaSQL += "('" + isbn + "','" + titulo + "','" + categoria + "')";//4filas = sentencia.executeUpdate(consultaSQL);

    response.sendRedirect("MostrarLibros.jsp");

    } catch (ClassNotFoundException e) {

    System.out.println("Error en la carga del driver"+ e.getMessage());

    } catch (SQLException e) {System.out.println("Error accediendo a la base de datos"

    + e.getMessage());} finally {

    //5if (sentencia != null) {

    try {sentencia.close();}catch (SQLException e){System.out.println("Error cerrando la sentencia" +

    e.getMessage());}}if (conexion != null) {

    try {conexion.close();}catch (SQLException e){System.out.println("Error cerrando la conexion" +

    e.getMessage());}

    }}%>

    "# %D',%0$% 4/% %& -E,'9* ,% &+ 3+9'0+ +/04/% #%0-'&&*@ %# $+.('B0 (+#$+0$% %8$%0#* ;+4/% #% %0-+)9+ ,% 9%#$'*0+) &+ -*0%8'E0 + &+ (+#% ,% ,+$*# ; 3*#$%)'*) %J%-/-'E0 ,% /0+

    -*0#/&$+ =? -*0$'0/+-'E0 #% %0/.%)+0 &+# 3)'0-'3+&%# *3%)+-'*0%# 4/% %& -E,'9* )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    38/40

    !"#$%&'(&$") +),)

    38

    Y= R%% &+ '07*).+-'E0 4/% 3)*D'%0% ,% L*)./&+)'*b0#%)$+)R'()*=5$.& /#+0,* %&*(J%$* )%4/%#$ ,% 1OP=

    e= 2)%+ /0 *(J%$* ,% $'3* 2*00%-$'*0_-*0%8'E0` ; /0 *(J%$* ,% $'3* O$+$%.%0$_#%0$%0-'+`

    f= 2)%+ /0+ -*0#/&$+ O]R ,% '0#%)-'E0 -*0 &*# ,+$*# ,%& &'()*g=

    "J%-/$+ &+ #%0$%0-'+ -*0 #/ O]R

    h= 2'%))+ &*# )%-/)#*# _-*0%8'E0 @#%0$%0-'+ %$-`

    ? -*0$'0/+-'E0 #% ./%#$)+ /0+ '.+9%0 ,% &+ %#$)/-$/)+ ,%& 3)*;%-$* ; %& 0/%D* 7'-5%)*

    4/% +-+(+.*# ,% -)%+)=

    T%).'0+,+ %#$+ 3)'.%)+ 3F9'0+@ %# .*.%0$* ,% +(*),+) %& #%9/0,* *(J%$'D* ,%&

    -+36$/&*=

    M# $.*7'(;& 4* :7 -7N(&7 I%,+.7.L(E.%,#R,-

    R+ 3F9'0+ cI*#$)+)R'()*#=J#3d #% %0-+)9+)F ,% .*#$)+) /0+ &'#$+ -*.3&%$+ ,% $*,*# &*#

    &'()*# 4/% $%0%.*# +&.+-%0+,*# %0 &+ (+#% ,% ,+$*#= P+)+ %&&* 5+)F /#* ,%& ?Pb ,% 1>M2_D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    39/40

    !!!"#$%&'()*(&$#+#,#"*-.

    39

    l#$% %# %& -E,'9* 7/%0$% ,% &+ 3F9'0+=

    $;4(N% 0#0@I%,+.7.L(E.%,#R,-

    Lista de Libros


  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    40/40

    !"#$%&'(&$") +),)

    40

    + e.getMessage());

    }catch (SQLException e) {

    System.out.println("Error accediendo a la base de datos"+ e.getMessage());

    }finally {//6if (rs != null) {

    try {rs.close();} catch (SQLException e){System.out.println("Error cerrando el resultset" + e.getMessage());}

    }

    if (sentencia != null) {

    try {sentencia.close();} catch (SQLException e){System.out.println("Error cerrando la sentencia" + e.getMessage());}

    }if (conexion != null) {

    try {conexion.close();} catch (SQLException e){System.out.println("Error cerrando la conexion" + e.getMessage());}

    }}

    %>Insertar Libro

    P*,%.*# +3)%-'+) 4/% %& -E,'9* 7/%0$% ,% I*#$)+)R'()*=J#3 )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    41/40

    !!!"#$%&'()*(&$#+#,#"*-.

    41

    T)+# -+)9+) %#$+ 3F9'0+@ 3*,)%.*# 3/+) %0 %& %0&+-% 4/% 0*# )%,')'9% +& 7*)./&+)'* ,%

    '0#%)-'E0 _D%) '.+9%0`

    "0 %& .*.%0$* %0 4/% 3/%.*# +& (*$E0 ,% '0#%)$+) /0 0/%D* &'()*@ B#$% #%)F'0#%)$+,* %0 &+ $+(&+ R'()*# ; &+ +3&'-+-'E0 D*&D%)F + .*#$)+) &+ 3F9'0+ I*#$)+)R'()*#=J#3

    _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    42/40

    !"#$%&'(&$") +),)

    42

    P*) A&$'.* .*#$)+.*# &+ %#$)/-$/)+ ,% 7'-5%)*# 7'0+& ,%& -+36$/&*=

    !"#$%"&"0 %#$% -+36$/&* 5%.*# 3)*9)%#+,* +& +:+,') /0+ 0/%D+ 7/0-'*0+&',+, + 0/%#$)++3&'-+-'E0@ 4/% %0 %#$*# .*.%0$*# ;+ %# -+3+< ,% '0#%)$+) ; #%&%--'*0+) )%9'#$)*# %0 &+

    (+#% ,% ,+$*#=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    43/40

    !!!"#$%&'()*(&$#+#,#"*-.

    43

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    44/40

    !"#$%&'(&$") +),)

    44

    !!!"# % &'(

    "0 %& -+36$/&* +0$%)'*) 5%.*# -*0#$)/',* &+ 7/0-'*0+&',+, ,% '0#%)$+) ; &'#$+) &'()*# = O'0%.(+)9*@ #' )%D'#+.*# %& -E,'9* ,% 0/%#$)+# 3+9'0+#@ D%)%.*# 4/% 9)+0 3+)$% %#',B0$'-* %0 +.(+#= l#$* %# ./; 5+('$/+& %0 %& ,%#+))*&&* ,% +3&'-+-'*0%# ; 9%0%)+3)*(&%.+# ,% .+0$%0'.'%0$* 3/%# #' %0 +&9A0 .*.%0$* 5+; 4/% -+.('+) 3+)$% ,%&

    -E,'9*@ %0 D'#$+ ,% 4/% &* 5%.*# )%3%$',* %0 $*,+# &+# 3F9'0+#@ #%)F 0%-%#+)'* )%+&'NU * >*0o$ N%3%+$ U*/)O%&7 '.3&'-+ 4/%@ -/+&4/'%) 7/0-'*0+&',+, %8'#$%0$% %0 /03)*9)+.+ ,%(% %8'#$') ,% 7*).+ A0'-+ %0 B& @ * &* 4/% %# &* .'#.*@ 0* ,%(%.*# $%0%)

    (&*4/%# ,% -E,'9* )%3%$',*#=

    SER*+(/%,@

    ?3&'-+) %& 3)'0-'3'* >NU + &+# 3F9'0+# 4/% 5%.*# -*0#$)/',* 5+#$+ %#$%.*.%0$*@%&'.'0+0,* -/+&4/'%) )%3%$'-'E0 ,% -E,'9*=

    ?D+0NU +3*;F0,*0*# %0 ,'-5* ,%#3&%9+(&%

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    45/40

    !!!"#$%&'()*(&$#+#,#"*-.

    45

    G7.*7,@

    Y= ?3&'-+) %& 3)'0-'3'* >NU ; -)%+) /0+ 0/%D+ -&+#% 4/% +;/,% + %&'.'0+) %& -E,'9*)%3%$',* 1>M2 ,% &+# 3F9'0+#=

    e= I*,'7'-+) &+# 3F9'0+# 1OP 3+)+ 4/% ,%&%9/%0 3+)$% ,% #/ 7/0-'*0+&',+, %0 &+

    0/%D+ -&+#%=f= ?:+,') ,%#3&%9+(&% ,% -+$%9*)6+# 3+)+ #%9/') 3)*7/0,'NU ; &+# -*0#/&$+# O]R=h= "& 3)'0-'3'* >NU .B$*,*# ; 3+)F.%$)*#Z= N%#/&$O%$ D# &'#$+# ,% *(J%$*#\= W#* ,% '0$%)7+-%# + 0'D%& ,% &'()*

    j= 2'%))% ,% -*0%8'*0%# /#+0,* )%7&%-$'*0

    "# VW74(. &3*/7 ':7,*

    "0 0/%#$)* -+#* 0*# D+.*# + -%0$)+) %0 %&'.'0+) %& -E,'9* 1>M2 )%3%$',* %0 0/%#$)+#

    3F9'0+# _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    46/40

    !"#$%&'(&$") +),)

    46

    P+)+ %&&* D+.*# + /0+ 0/%D+ -&+#% 4/% #% #% D+ + ,%0*.'0+) >+$+M+#%V%&3%) ; 0*#+;/,+)+ + 9%#$'*0+) .%J*) %& -E,'9* 1>M2= "#$+ -&+#% '.3&%.%0$+)F &*# #'9/'%0$%#

    .B$*,*#C

    -3E:(' ,+7+(' 1*,3:+J*+ ,*:*''(%&7.1*N(,+.%,gJ+.(&N ,2:hC IB$*,* 4/% #% %0-+)9+)F ,%

    %J%-/$+) /0+ -*0#/&$+ O]R ,% #%&%--'E0 ; ,%D*&D%)0*# /0 -*0J/0$* ,% )%9'#$)*# -*0 /0+%#$)/-$/)+ ,% N%#/&$O%$=

    -3E:(' ,+7+(' /%(4 )%4(5('7.1*N(,+.%gJ+.(&N ,2:h @IB$*,* 4/% #% %0-+)9+)F ,% %J%-/$+)-/+&4/'%) -*0#/&$+ O]R ,% .*,'7'-+-'E0 _'0#%)$@/3,+$%@,%&%$% %$-` ; ,%D*&D%)0*# /0

    %0$%)* -*0 %& 0/.%)* ,% 7'&+# +7%-$+,+#=

    ? -*0$'0/+-'E0 #% ./%#$)+ #/ -E,'9* 7/%0$%=

    2E,'9* f=YC _>+$+M+#%V%&3%)=J+D+`

    package com.arquitecturajava;

    import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

    public class DataBaseHelper {

    private static final String DRIVER = "com.mysql.jdbc.Driver";

    private static final String URL = "jdbc:mysql://localhost/arquitecturajava";private static final String USUARIO = "root";private static final String CLAVE = "java";

    public int modificarRegistro(String consultaSQL) {

    Connection conexion = null;Statement sentencia = null;int filasAfectadas = 0;

    try {

    Class.forName(DRIVER);conexion = DriverManager.getConnection(URL,

    USUARIO, CLAVE);

    sentencia = conexion.createStatement();filasAfectadas = sentencia.executeUpdate(consultaSQL);

    } catch (ClassNotFoundException e) {

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    47/40

    !!!"#$%&'()*(&$#+#,#"*-.

    47

    System.out.println("Error driver" + e.getMessage());} catch (SQLException e) {

    System.out.println("Error de SQL" + e.getMessage());} finally {

    if (sentencia != null) {

    try {sentencia.close();} catch (SQLException e) {}

    }if (conexion != null) {

    try {conexion.close();} catch (SQLException e) {}}

    }

    return filasAfectadas;}public ResultSet seleccionarRegistros(String consultaSQL) {

    Connection conexion = null;Statement sentencia = null;ResultSet filas = null;try {

    Class.forName(DRIVER);

    conexion = DriverManager.getConnection(URL,USUARIO, CLAVE);

    sentencia = conexion.createStatement();

    filas = sentencia.executeQuery(consultaSQL);} catch (ClassNotFoundException e) {

    System.out.println("Error Driver" + e.getMessage());} catch (SQLException e) {

    System.out.println("Error de SQL " + e.getMessage());}return filas;

    }

    }

    W0+ D%< 4/% %#$+ -&+#% %#$B -*0#$)/',+@ &+# 3F9'0+# 1OP ,% 0/%#$)+ +3&'-+-'E0#'.3&'7'-+)F0 #'90'7'-+$'D+.%0$% %& -E,'9* 4/% -*0$'%0%0 ; ,%&%9+)F0 %0 &+ -&+#%

    >+$+M+#%V%&3%) 3+)+ )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    48/40

    !"#$%&'(&$") +),)

    48

    ?-+(+.*# ,% -*0#$)/') &+ -&+#% >+$+M+#%V%&3%)@ %# .*.%0$* ,% 3+#+) + .*,'7'-+) &+#3+9'0+# 1OP 3+)+ 4/% ,%&%9/%0 %0 %&&+=

    0# I%4(5('7. -7N(&7,

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    49/40

    !!!"#$%&'()*(&$#+#,#"*-.

    49

    2*.* 3*,%.*# D%) &+ 3F9'0+ b0#%)$+)R'()*#=J#3 4/%,+ D'#'(&%.%0$% #'.3&'7'-+,+ =O'0

    %.(+)9*@ 0* *-/))% &* .'#.* -*0 I*#$)+)R'()*#=J#3@ _D%) '.+9%0`=

    2E,'9* f=fC _I*#$)+)R'()*#=J#3`


    Insertar Libro

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    50/40

    !"#$%&'(&$") +),)

    50

    P+)+ 3*,%) #'.3&'7'-+) +A0 .F# %& -E,'9* ,% &+ 3F9'0+ I*#$)+)R'()*#=J#3 3)%-'#+)%.*#+3*;+)0*# ,% 0/%D* %0 %& 3)'0-'3'* >NU= O'0 %.(+)9*@ -*0 $+0 3*-* -E,'9* -*0#$)/',*@%# ,'76-'& D%) -E.* +3&'-+)&* -*0 .+;*) -*5%)%0-'+= ?#6 3/%# D+.*# + +:+,') /0+ 0/%D+

    7/0-'*0+&',+, + 0/%#$)+ +3&'-+-'E0 3+)+ %0 +,%&+0$% D%) &+# -*#+# -*0 .+;*) -&+)',+,=

    8# VW74(. A(:+.% -%. '7+*N%.i7

    k+.*# + +:+,') /0 ,%#3&%9+(&% ,% -+$%9*)6+# + &+ 3F9'0+ I*#$)+)R'()*#=J#3 4/% 0*#3%).'$')F 3*#$%)'*).%0$% )%+&'


  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    51/40

    !!!"#$%&'()*(&$#+#,#"*-.

    51

    "0 3)'0-'3'* %#$+ +--'E0 0* %# ./; -*.3&'-+,+@ #'0 %.(+)9* #' )%D'#+.*# %& 7*)./&+)'*

    ,% '0#%)-'E0@ 0*# ,+)%.*# -/%0$+ ,% 4/% 5+; ,'#%:+)&* -*.* ,%#3&%9+(&% _D%) '.+9%0`=

    "0 &+ 3F9'0+ ,% I*#$)+)R'()*#=J#3 /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    52/40

    !"#$%&'(&$") +),)

    52

    P*) &* $+0$* 0*# %0-*0$)+.*# %0 /0+ #'$/+-'E0 #'.'&+) + &+ +0$%)'*) @ #E&* 4/% %0 %#$+

    *-+#'E0 %0 D%< ,% $%0%) -E,'9* 1>M2 )%3%$',* $%0%.*# -*0#/&$+# O]R=

    M# F: -.(&'(-(% =1f C :7, '%&,3:+7, JKL

    P+)+ %D'$+) &+ )%3%$'-'E0 ,% O]R# + &* &+)9* ,% &+# ,'#$'0$+# 3F9'0+# 1OP _-*0 &*#3)*(&%.+# ,% .+0$%0'.'%0$* +#*-'+,*#` 0*# +3*;+)%.*# %0 &+ ',%+ +0$%)'*) ;-)%+)%.*# /0+ 0/%D+ -&+#% 4/% #% %0-+)9/% ,% 9%#$'*0+) &+# -*0#/&$+#=>%0*.'0+)%.*# + &+ 0/%D+ -&+#% L(E.% C B#$+ +&.+-%0+)F $*,+# &+# -*0#/&$+# 4/%.+0%J%0 &*# ,+$*# 4/% &+ $+(&+ R'()* -*0$'%0%= ? -*0$'0/+-'E0 #% ./%#$)+ /0+ '.+9%0

    #*()% -E.* %0-+J+ &+ 0/%D+ -&+#% %0 &+ %#$)/-$/)+ 4/% ;+ $%06+.*# ,%7'0',+=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    53/40

    !!!"#$%&'()*(&$#+#,#"*-.

    53

    2&+)'7'-+,* +#6 ,*0,% %0-+J+ &+ 0/%D+ -&+#% %0 0/%#$)+ +)4/'$%-$/)+@ D+.*# + .*#$)+) #/-E,'9* 7/%0$%=

    2E,'9* f=h C _R'()*=J+D+`

    public class Libro {public static ResultSet buscarTodasLasCategorias() {

    String consultaSQL = "select distinct(categoria) from Libros";DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);return rs;

    }public static void insertar(String isbn, String titulo, String categoria) {

    String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";consultaSQL += "('" + isbn + "','" + titulo + "','" + categoria + "')";

    DataBaseHelper helper = new DataBaseHelper();helper.modificarRegistro(consultaSQL);

    }public static ResultSet buscarTodos() {

    String consultaSQL = "select isbn,titulo,categoria from Libros";DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);return rs;

    }}

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    54/40

    !"#$%&'(&$") +),)

    54

    2*.* 3*,%.*# D%)@ &+ -&+#% +&(%)9+ $)%# .B$*,*#=

    Y= (/#-+)T*,*#_`e= (/#-+)P*)2+$%9*)'+_`

    f= '0#%)$+)_`

    2+,+ /0* ,% %&&*# #% %0-+)9+ ,% %J%-/$+) /0+ ,% &+# -*0#/&$+# 0%-%#+)'+# 3+)+ &+ $+(&+R'()*#= W0+ D%< -)%+,+ %#$+ -&+#%@ &+# 3+9'0+# 1OP 3*,)F0 ,%&%9+) %0 %&&+ ; %&'.'0+) &+#-*0#/&$+# O]R ,% &+# 3F9'0+#= ? -*0$'0/+-'E0 #% ./%#$)+ &+ 3+9'0+ cb0#%)$+)R'()*=J#3d

    -*.* %J%.3&* ,%& /#* ,% &+ -&+#% R'()* %0 &+# 3F9'0+# 1OP=

    2E,'9* f=ZC _b0#%)$+)R'()*=J#3`

    V%.*# %&'.'0+,* &+# -*0#/&$+# O]R ,% 0/%#$)+# 3F9'0+# +3&'-+0,* %& 3)'0-'3'* >NU= O'0%.(+)9* %# (/%0 .*.%0$* 3+)+ D*&D%) + )%D'#+) %#$% 3)'0-'3'* ,% -+)+ + &+ 0/%D+ -&+#%

    R'()* 4/% 5%.*# -*0#$)/',*= O' 0*# 7'J+.*# %0 &+ 7').+ ,%& .B$*,* '0#%)$+)@

    2E,'9*f=\C _R'()*=J+D+`

    public static void insertar(String isbn, String titulo, String categoria)

    0*# 3*,%.*# ,+) -/%0$+ ,% 4/% 3)*(+(&%.%0$% 0* #%+ %& A0'-* .B$*,* 4/% '0-&/;+%#$*# 3+)F.%$)*@# ;+ 4/% %& .B$*,* .*,'7'-+) ; %& .B$*,* (*))+) $%0,)F0 3+)F.%$)*#

    #'.'&+)%# -/+0,* #% -*0#$)/;+0C

    2E,'9* f=jC _R'()*=J+D+`

    public static void editar(String isbn, String titulo, String categoria)public static void borrar(String isbn)

    P+)%-% -&+)* 4/% $*,*# -*.3+)$%0 /0 .'#.* 9)/3* ,% 3+)F.%$)*#= "# /0+ *-+#'E0

    3%)7%-$+ 3+)+ D*&D%) + +3&'-+) %& 3)'0-'3'* >NU ; %&'.'0+) %#$+ )%3%$'-'E0 ,% 3+)F.%$)*#=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    55/40

    !!!"#$%&'()*(&$#+#,#"*-.

    55

    ^# F: -.(&'(-(% =1f )j+%4%, C -7.7)*+.%,

    "0 3)*9)+.+-'E0 *)'%0$+,+ + *(J%$*@ /0+ -&+#% #'%.3)% #% -*.3*0% ,% 3)*3'%,+,%# ;.B$*,*# * 7/0-'*0%#= "0 0/%#$)* -+#*@ &+ -&+#% R'()* 0* ,'#3*0% ,% 3)*3'%,+,%# ; ,%

    +56 &*# 3)*(&%.+# -*0 $*,*# &*# 3+)F.%$)*#_D%) '.+9%0`=

    P*) &* $+0$*@ D+.*# + .*,'7'-+) 0/%#$)+ -&+#% 3+)+ 4/% ,'#3*09+ ,% &+# 3)*3'%,+,%#0%-%#+)'+# ; &*# .B$*,*# #% 3/%,+0 +3*;+) %0 %&&+# %D'$+0,* )%3%$'-'*0%# '00%-%#+)'+#=R+ #'9/'%0$% '.+9%0 -&+)'7'-+ &+ 0/%D+ %#$)/-$/)+ ,% &+ -&+#% ; -*.* B#$+ #% +3*;+ %0 %&

    3)'0-'3'* >NU=

    W0+ D%< $%0%.*# -&+)* &+# .*,'7'-+-'*0%# 4/% +7%-$+)+0 + &+ -&+#%@ D+.*# + D%) #/

    -E,'9* 7/%0$%=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    56/40

    !"#$%&'(&$") +),)

    56

    2E,'9* f=nC _R'()*=J+D+`

    public class Libro {private String isbn;

    private String titulo;private String categoria;public String getIsbn() {

    return isbn;}public void setIsbn(String isbn) {

    this.isbn = isbn;}public String getTitulo() {

    return titulo;}

    public void setTitulo(String titulo) {this.titulo = titulo;}public String getCategoria() {

    return categoria;}public void setCategoria(String categoria) {

    this.categoria = categoria;}public Libro(String isbn, String titulo, String categoria) {

    this.isbn = isbn;this.titulo = titulo;

    this.categoria = categoria;}public static ResultSet buscarTodasLasCategorias() {

    String consultaSQL = "select distinct(categoria) from Libros";DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);return rs;}

    public void insertar() {String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";consultaSQL += "('" + this.isbn + "','" + this.titulo + "','"

    + this.categoria + "')";DataBaseHelper helper = new DataBaseHelper();helper.modificarRegistro(consultaSQL);

    }public static ResultSet buscarTodos() {

    String consultaSQL = "select isbn,titulo,categoria from Libros";DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);return rs;

    }}

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    57/40

    !!!"#$%&'()*(&$#+#,#"*-.

    57

    k'#$* +#6 %& -E,'9* 7/%0$%@ %# .*.%0$* ,% .*#$)+) &+# .*,'7'-+-'*0%# 4/% ,%(%.*#)%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    58/40

    !"#$%&'(&$") +),)

    58

    2E,'9* f=YeC _R'()*=J+D+`

    public static ArrayList buscarTodos() {String consultaSQL = "select isbn,titulo,categoria from Libros";

    DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);

    ArrayList listaDeLibros= new ArrayList();try {

    while (rs.next()) {listaDeLibros.add(new Libro(rs.getString("isbn"),

    rs.getString("titulo"),rs.getString("categoria")));

    }} catch (SQLException e) {

    System.out.println(e.getMessage());}return listaDeLibros;

    }

    W0+ D%< .*,'7'-+,* %& .B$*,* (/#-+)T*,*#_` 3+)+ 4/% ,%D/%&D+ /0+ &'#$+ ,% &'()*#@ &+3+9'0+ I*#$)+)R'()*#=J#3 3*,)F +3*;+)#% %0 %& 0/%D* .B$*,* + &+ 5*)+ ,% .*#$)+) &*#

    ,+$*#=

    2E,'9* f=YfC _R'()*=J+D+`


    ?#6@ ;+ 0* %8'#$%0 )%7%)%0-'+# + 1>M2 %0 &+ 3+9'0+@ %& .'#.* -+.('* #% 3/%,% +3&'-+) +&.B$*,* ,% (/#-+)T*,+#R+#2+$%9*)'+#_`= ? -*0$'0/+-'E0 #% ./%#$)+ #/ -E,'9* 7/%0$%=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    59/40

    !!!"#$%&'()*(&$#+#,#"*-.

    59

    2E,'9* f=YgC _R'()*=J+D+`

    public static ArrayList buscarTodasLasCategorias() {String consultaSQL = "select distinct(categoria) as categoria

    from Libros";DataBaseHelper helper = new DataBaseHelper();

    ResultSet rs = helper.seleccionarRegistros(consultaSQL);ArrayList listaDeCategorias= new ArrayList();String categoria=null;try {

    while (rs.next()) {categoria= rs.getString("categoria");listaDeCategorias.add(categoria);

    }} catch (SQLException e) {

    System.out.println(e.getMessage());}return listaDeCategorias;

    }

    H# X,% 4* (&+*.57'*, 7 &(/*: 4* L(E.%

    "0 %#$*# .*.%0$*# ,'#3*0%.*# ,% .B$*,*# ,% (A#4/%,+ ,% R'()*# * 2+$%9*)6+# 4/%,%D/%&D%0 /0 ?))+;R'#$ ,% /0 $'3* ,%$%).'0+,* pR'()*q *p O$)'09q _D%) -E,'9*`=

    O' 4/%)%.*# $%0%) /0+ .+;*) 7&%8'('&',+, %0 %& 3+)F.%$)* ,% )%$*)0*@ #% ,%(% -+.('+)

    %& $'3* ?))+;R'#$ 3*) %& 9&+*.57'* L(,+ _D%) -E,'9*`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    60/40

    !"#$%&'(&$") +),)

    60

    ? -*0$'0/+-'E0 #% ./%#$)+ -*.* 4/%,+ %& .B$*,* /0+ D%< .*,'7'-+,*=

    2E,'9* f=YhC _R'()*=J+D+`

    public static ListbuscarTodos() {String consultaSQL = "select isbn,titulo,categoria from Libros";

    DataBaseHelper helper = new DataBaseHelper();ResultSet rs = helper.seleccionarRegistros(consultaSQL);List listaDeLibros= new ArrayList();try {

    while (rs.next()) {listaDeLibros.add(new Libro(rs.getString("isbn"),

    rs.getString("titulo"),rs.getString("categoria")));

    }} catch (SQLException e) {System.out.println(e.getMessage());

    }

    return listaDeLibros;}

    a*# 3/%,% 3+)%-%) 4/% 5%.*# $%).'0+,* ,% -*0#$)/') &+ -&+#% &'()* ; #6 %# -'%)$* 4/%0* $%0%.*# 4/% .*,'7'-+) 0+,+ + 0'D%& ,% %#$)/-$/)+ 9%0%)+&= ?5*)+ ('%0@ #' )%D'#+.*#%& -E,'9*@ D%)%.*# 4/% %& .B$*,* #"%"(()*+,-!".)#&-*#,% &+ -&+#% /,&,0,#"1"%2"-0*

    -'%))+ &+ -*0%8'E0 -/+0,* 0*# ,%D/%&D% %& !"#$%&'"&_D%) -E,'9*`=

    2E,'9* f=YZC _>+$+M+#%V%&3%)=J+D+`

    public ResultSet seleccionarRegistros(String consultaSQL) {Connection conexion = null;

    Statement sentencia = null;ResultSet filas = null;try {

    Class.forName(DRIVER);conexion = DriverManager.getConnection(URL, USUARIO,

    CLAVE);sentencia = conexion.createStatement();filas = sentencia.executeQuery(consultaSQL);

    } catch (ClassNotFoundException e) {

    System.out.println("Error de Driver" + e.getMessage());} catch (SQLException e) {

    System.out.println("Error de SQL " + e.getMessage());}return filas;

    }

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    61/40

    !!!"#$%&'()*(&$#+#,#"*-.

    61

    l#$* &+.%0$+(&%.%0$% %# 0%-%#+)'* +5*)+ ;+ 4/% #' -%))+.*# &+ -*0%8'E0 + %#$% 0'D%& &+

    -&+#% R'()* 0* 3*,)F )%-*))%) %& N%#/&$O%$ ; -+)9+) &+ &'#$+ ,% R'()*# _D%) '.+9%0`=

    b# $(*..* 4* '%&*B(%&*, C .*5:*'+(%

    P+)+ 3*,%) #*&D%0$+) %& 3)*(&%.+ ,% -'%))% ,% -*0%8'*0%#@ D+.*# + 3+#+) + .*,'7'-+) &+-&+#% >+$+M+#%V%&3%)C &+ -*0D%)$')%.*# %0 /0+ -&+#% K%0B)'-+ ,% $+& 7*).+ 4/% %&&+.'#.+@ ,%3%0,'%0,* ,%& $'3* ,% -&+#% 4/% )%-'(+ -*.* 3+)F.%$)* %0 &*# .B$*,*# ,%

    (A#4/%,+@ 0*# 9%0%)+)F /0+ &'#$+ ,% *(J%$*# ,% %#% $'3* -*0-)%$* _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    62/40

    !"#$%&'(&$") +),)

    62

    ?5*)+ ('%0@ 3+)+ 4/% &+ -&+#% >+$+M+#%V%&3%) 3/%,+ 5+-%) /#* ,% 9%0B)'-*# ; #%+ -+3++$+M+#%V%&3%)=R+ +)4/'$%-$/)+ ,% 0/%#$)+ +3&'-+-'E0 5+ +/.%0$+,* #/ 0'D%& ,% -*.3&%J',+, 3%)*-*.* -*0$)+3)%#$+-'E0 5%.*# )%,/-',* #'90'7'-+$'D+.%0$% &+ %09*))*#+ )%3%$'-'E0 ,%

    -E,'9* @ )%,/-'B0,*#% $+.('B0 %& %#7/%)

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    66/40

    !"#$%&'(&$") +),)

    66

    !"!"#$%&' )*&&%& + ,#-$&%&

    "0 %& -+36$/&* +0$%)'*) 5%.*# '0$)*,/-',* %& 3)'0-'3'* >NU= "0 %#$% -+36$/&* 0*#-%0$)+)%.*# %0 +:+,') /0+ 0/%D+ 7/0-'*0+&',+, + 0/%#$)+ +3&'-+-'E0= k%)%.*# &+#

    -+3+-',+,%# ,% %,'-'E0@ (*))+,* ; 7'&$)+,* ,% R'()*# +;/,F0,*0*# + +#%0$+) &*#-*0-%3$*# +3)%0,',*# %0 %& -+36$/&* +0$%)'*)=

    SER*+(/%, @

    ?:+,') &+ 7/0-'*0+&',+, 4/% 0*# 3%).'$+ (*))+) &'()*#=

    ?:+,') 7/0-'*0+&',+, 4/% 0*# 3%).'$+ %,'$+) &'()*#=

    ?:+,') /0 7'&$)* 3*) -+$%9*)6+# + &*# &'()*#=

    G7.*7,@

    Y= ?:+,') /0 0/%D* %0&+-% ,% (*))+) + cI*#$)+)R'()*#=J#3d =e= ?:+,') %& .B$*,* (*))+)_` + &+ -&+#% R'()*=f= ?:+,') /0+ 0/%D+ 3F9'0+ cM*))+)R'()*=J#3d 4/% #% %0-+)9/% ,% %J%-/$+) &+

    7/0-'*0+&',+, ,% (*))+)=g= ?:+,') /0 0/%D* %0&+-% ,% %,'-'E0 + I*#$)+)R'()*#=J#3=h= ?:+,') %& .B$*,* (/#-+)P*)2&+D%_` 4/% (/#4/% /0 &'()* 3*) bOMa + &+ -&+#%

    R'()*=

    Z= ?:+,') /0+ 0/%D+ 3F9'0+ _L*)./&+)'*",'$+)R'()*=J#3` 4/% ./%#$)% &*# ,+$*# ,%&&'()* 4/% ,%#%+.*# .*,'7'-+)=

    \= ?:+,') %& .B$*,* #+&D+)_` + &+ -&+#% &'()* 4/% 9/+),+ &+# .*,'7'-+-'*0%#)%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    67/40

    !!!"#$%&'()*(&$#+#,#"*-.

    67

    Y^=I*,'7'-+) &+ 3+9'0+ I*#$)+)R'()*#=J#3 3+)+ 4/% #% +3*;% %0 %& .B$*,*

    (/#-+)P*)2+$%9*)'+=

    "# VW74(. *&:7'* 4* E%..7.

    P+)+ 4/% 0/%#$)+ +3&'-+-'E0 #%+ -+3+< ,% (*))+) &'()*#@ ,%(%.*# +:+,') /0 0/%D*%0&+-% + &+ 3F9'0+ I*#$)+)R'()*#=J#3 _D%) -E,'9*`=

    P+)+ %&&*@ 0%-%#'$+.*# +:+,') /0+ 0/%D+ &60%+ ,% -E,'9* + cI*#$)+)R'()*#=J#3d -*.* #%

    ./%#$)+ %0 %& -E,'9*=

    2E,'9* g=YC _I*#$)+)R'()*=J#3`

    Borrar

    0# VW74(. )j+%4% E%..7.

    ?& -)%+) %& %0&+-%@ %# 0%-%#+)'* +:+,') /0 0/%D* .B$*,* + &+ -&+#% R'()* 4/% #%%0-+)9/% ,% (*))+) %& )%9'#$)* ,% &+ $+(&+= ? -*0$'0/+-'E0 #% ./%#$)+ %& -E,'9* ,% %#$%.B$*,*=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    68/40

    !"#$%&'(&$") +),)

    68

    2E,'9* g=eC _R'()*=J+D+`

    public void borrar() {

    String consultaSQL = "delete from Libros where isbn='"+ this.isbn+"'";DataBaseHelper helper = new DataBaseHelper();helper.modificarRegistro(consultaSQL);

    }

    W0+ D%< .*,'7'-+,+ &+ -&+#% R'()*@ 3)*-%,%)%.*# + -*0#$)/') &+ 3F9'0+ M*))+)R'()*=J#3=

    8# VW74(. -aN(&7 d%..7.L(E.%#R,-

    R+ 3F9'0+ 4/% #% %0-+)9+ ,% (*))+) &*# &'()*# %# ./; #%0-'&&+@ #'.3&%.%0$% *($'%0% %&bOMa ,% &+ 3%$'-'E0@ #% %0-+)9+ ,% -)%+) /0 *(J%$* &'()* % '0D*-+) +& .B$*,* (*))+)=

    k%+.*# #/ -E,'9* 7/%0$%=

    2E,'9* g=fC_M*))+)R'()*=J#3`

    T)+# $*,*# %#$*# 3+#*#@ ,'#3*0,)%.*# ,% /0+ 0/%D+ 3F9'0+ %0 0/%#$)* 3)*;%-$* _D%)

    '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    69/40

    !!!"#$%&'()*(&$#+#,#"*-.

    69

    2*0 %#$+# 3)'.%)+# $)%# $+)%+# -*.3&%.%0$+.*# %& 3)'.%) *(J%$'D* ,%& -+36$/&*C 4/%0/%#$)+ +3&'-+-'E0 #%+ -+3+< ,% (*))+) R'()*#= ? -*0$'0/+-'E0 #% ./%#$)+ /0+ '.+9%0

    ,%& 7&/J* %0$)% 3F9'0+# ; -&+#%# 4/% +;/,+ + -&+)'7'-+) &*# 3+#*# )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    70/40

    !"#$%&'(&$") +),)

    70

    ? -*0$'0/+-'E0 #% ./%#$)+0 &+# .*,'7'-+-'*0%# ,%& -E,'9* 7/%0$%=

    2E,'9* g=gC_I*#$)+)R'()*=J#3`

    BorrarEditar

    ?:+,',* ,% %#$+ 7*).+ %& %0&+-%@ 3+#+)%.*# + ,%7'0') &+ #'9/'%0$% $+)%+=

    ^# Ij+%4% 4* El,23*47 -%. ':7/*

    P+)+ 3*,%) %,'$+) /0 )%9'#$)* 0%-%#'$+)%.*# 3)'.%)* #%&%--'*0+)&*@ 3+)+ %&&* -)%+)%.*#/0 0/%D* .B$*,* 3+)+ &+ -&+#% R'()* 4/% #% ,%0*.'0+)+ E3,'7.Q%.$:7/*gh# "#$%.B$*,* 0*# (/#-+)F /0 &'()* + $)+DB# ,% #/ bOMa= ? -*0$'0/+-'E0 #% ./%#$)+ %& -E,'9*

    7/%0$% ,%& 0/%D* .B$*,*=

    2E,'9* g=hC_R'()*=J+D+`

    public static Libro buscarPorClave (String isbn) {

    String consultaSQL = "select isbn,titulo,categoria from Libros whereisbn='"+ isbn+"'";

    DataBaseHelper helper = new DataBaseHelper();List listaDeLibros =helper.seleccionarRegistros(consultaSQL,Libro.class);

    return listaDeLibros.get(0);}

    ?# VW74(. 5%.)3:7.(% 4* *4('(;& 4* ';4(N%#

    W0+ D%< +:+,',* %& .B$*,* ,% (/#-+)P*)2&+D%@ 3+#+)%.*# + +:+,') /0+ 0/%D+ 3F9'0+ +0/%#$)+ +3&'-+-'E0 ,%0*.'0+,+ cL*)./&+)'*",'$+)R'()*=J#3d _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    71/40

    !!!"#$%&'()*(&$#+#,#"*-.

    71

    L'0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    72/40

    !"#$%&'(&$") +),)

    72

    2E,'9* g=ZC _I*#$)+)R'()*=J#3`

    Formulario alta libro

    ISBN:

    Titulo:

    Categoria :


    2*.* D%.*#@ %& -E,'9* %# ',B0$'-* +& 7*)./&+)'* ,% b0#%)$+) -*0 %& 4/% 5%.*#

    $)+(+J+,* %0 -+36$/&*# +0$%)'*)%#@ -*0 &+ A0'-+ #+&D%,+, ,%& #'9/'%0$% (&*4/% ,% -E,'9*=

    2E,'9*g=\C _I*#$)+)R'()*=J#3`

    Libro libro=Libro.buscarPorClave(request.getParameter(isbn)

    "#$+ &60%+ %# &+ %0-+)9+,+ ,% (/#-+)0*# %& &'()* 4/% ,%#%+.*# %,'$+) ; 9/+),+)&* %0 &+D+)'+(&% c&'()*d= W0+ D%< ,'#3*0%.*# ,% &*# ,+$*# ,%& &'()* #'.3&%.%0$% &*# .*#$)+.*#

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    73/40

    !!!"#$%&'()*(&$#+#,#"*-.

    73

    + $)+DB# ,% &+# %$'4/%$+# p'03/$q ; p#%&%-$q /#+0,* #-)'3$&%$ ,% J#3 + &+ 5*)+ ,% +#'90+)

    &+ 3)*3'%,+, D+&/%@ -*.* ./%#$)+ %& #'9/'%0$% (&*4/% ,% -E,'9*=

    2E,'9* g=jC _I*#$)+)R'()*=J#3`

    H# VW74(. )j+%4% ,7:/7.

    W0+ D%< 4/% 5%.*# -*0#$)/',* %#$% 7*)./&+)'*@ 3*,%.*# .*,'7'-+) &*# ,+$*# ,%& &'()*4/% 3)%D'+.%0$% 5%.*# #%&%--'*0+,*= N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    74/40

    !"#$%&'(&$") +),)

    74

    ? -*0$'0/+-'E0 #% ./%#$)+ %& -E,'9* 7/%0$% ,% %#$+ 3F9'0+

    2E,'9* g=nC _O+&D+)R'()*=J#3`

    W0+ D%< -*0#$)/',*# $*,*# &*# .B$*,*#@ D+.*# + D%) /0+ '.+9%0 7'0+& +-&+)+$*)'+=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    75/40

    !!!"#$%&'()*(&$#+#,#"*-.

    75

    m# VW74(. )j+%4% E3,'7.Q%.$7+*N%.(7#

    k+.*# + ,+) /0 A&$'.* 3+#* ; +:+,') &+ 7/0-'*0+&',+, ,% 7'&$)* 3*) -+$%9*)6+ + 0/%#$)++3&'-+-'E0= P+)+ %&&*@ &* 3)'.%)* 4/% ,%(%.*# 5+-%) %# +:+,') /0 0/%D* .B$*,* + &+-&+#% R'()* 4/% 0*# ,%D/%&D+ + /0+ &'#$+ ,% &'()*# 3+)+ /0+ -+$%9*)6+ -*0-)%$+= k+.*# +D%) %& -E,'9* 7/%0$% ,% %#$% .B$*,* =

    2E,'9* g=Y^C _R'()*=J+D+`

    public static List buscarPorCategoria (String categoria) {String consultaSQL = "select isbn,titulo,categoria from Libros where

    categoria='"+ categoria+"'";DataBaseHelper helper = new DataBaseHelper();List listaDeLibros = helper.

    seleccionarRegistros(consultaSQL,Libro.class);return listaDeLibros;}

    }

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    76/40

    !"#$%&'(&$") +),)

    76

    W0+ D%< -*0#$)/',* %#$% 0/%D* .B$*,*@ 5+; 4/% .*,'7'-+) &+ 3F9'0+ I*#$)+)R'()*#=J#33+)+ 4/% 3/%,+ '0D*-+)&*= P+)+ %&&* +:+,')%.*# + %#$+ 3F9'0+ /0 0/%D* (*$E0 ,%

    7'&$)+,*_D%) '.+9%0`=

    k+.*# + .*#$)+) + -*0$'0/+-'E0 %& 0/%D* -E,'9* ,% &+ 3F9'0+ I*#$)+)R'()*#=J#3

    *)'%0$+,* + &+# .*,'7'-+-'*0%# #/#-%3$'(&%# ,% )%+&'

    Borrar

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    77/40

    !!!"#$%&'()*(&$#+#,#"*-.

    77

    "0 %#$+ -+#* &+ *3%)+-'E0 0* %# ./; -*.3&'-+,+ ; #'.3&%.%0$% #%&%--'*0+ %& .B$*,*(/#-+)T*,*#_` * (/#-+)P*)2+$%9*)'+_`@ ,%3%0,'%0,* ,% #' 3+#+.*# 3+)F.%$)*# * 0*= ?-*0$'0/+-'E0 #% ./%#$)+ /0+ '.+9%0 +-&+)+$*)'+ ,% &+ &'9+

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    78/40

    !"#$%&'(&$") +),)

    78

    2E,'9* g=YeC _R'()*=J+D+`

    package com.arquitecturajava;import java.util.List;public class Libro {

    private String isbn;

    private String titulo;private String categoria;public String getIsbn() {

    return isbn;}public void setIsbn(String isbn) {

    this.isbn = isbn;}public String getTitulo() {

    return titulo;}

    public void setTitulo(String titulo) {this.titulo = titulo;

    }

    public String getCategoria() {return categoria;

    }

    public void setCategoria(String categoria) {this.categoria = categoria;

    }

    public Libro(String isbn) {super();this.isbn = isbn;

    }public Libro() {

    super();}public Libro(String isbn, String titulo, String categoria) {

    super();this.isbn = isbn;this.titulo = titulo;this.categoria = categoria;

    }public static List buscarTodasLasCategorias() {String consultaSQL = "select distinct(categoria) as categoria from

    Libros";DataBaseHelper helper = new DataBaseHelper();List listaDeCategorias = helper.seleccionarRegistros(

    consultaSQL, String.class);return listaDeCategorias;

    }

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    79/40

    !!!"#$%&'()*(&$#+#,#"*-.

    79

    public void insertar() {

    String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";consultaSQL += "('" + this.isbn + "','" + this.titulo + "','"

    + this.categoria + "')";DataBaseHelper helper = new DataBaseHelper();

    helper.modificarRegistro(consultaSQL);}public void borrar() {

    String consultaSQL = "delete from Libros where isbn='" + this.isbn+ "'";

    DataBaseHelper helper = new DataBaseHelper();helper.modificarRegistro(consultaSQL);

    }public void salvar() {

    String consultaSQL = "update Libros set titulo='" + this.titulo

    + "', categoria='" + categoria + "' where isbn='" + isbn + "'";DataBaseHelper helper = new DataBaseHelper();helper.modificarRegistro(consultaSQL);

    }public static List buscarTodos() {

    String consultaSQL = "select isbn,titulo,categoria from Libros";DataBaseHelper helper = new DataBaseHelper();List listaDeLibros = helper.seleccionarRegistros(consultaSQL,

    Libro.class);return listaDeLibros;

    }public static Libro buscarPorClave(String isbn) {

    String consultaSQL = "select isbn,titulo,categoria from Libros whereisbn='"+ isbn + "'";

    DataBaseHelper helper = new DataBaseHelper();List listaDeLibros = helper.seleccionarRegistros(consultaSQL,

    Libro.class);return listaDeLibros.get(0);

    }public static List buscarPorCategoria(String categoria) {

    String consultaSQL = "select isbn,titulo,categoria from Libros where

    categoria='"+ categoria + "'";DataBaseHelper helper = new DataBaseHelper();List listaDeLibros = helper.seleccionarRegistros(consultaSQL,

    Libro.class);return listaDeLibros;

    }}

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    80/40

    !"#$%&'(&$") +),)

    80

    !"#$%"&

    "0 %#$% -+36$/&* 5%.*# +7'+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    81/40

    !!!"#$%&'()*(&$#+#,#"*-.

    81

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    82/40

    !"#$%&'(&$") +),)

    82

    !"!"#$%& ($ $)*$+*,$-

    "0 %& -+36$/&* +0$%)'*) 5%.*# +:+,',* 7/0-'*0+&',+, + &+ +3&'-+-'E0 ; -*0#$)/',* /0+-&+#% R'()* 4/% -/.3&% -*0 %& 3+$)E0 ?-$'D%N%-*),= ? 3+)$') ,% %#$% -+36$/&* 0*

    +:+,')%.*# ./-5+ .F# 7/0-'*0+&',+, #'0* 4/% 0*# -%0$)+)%.*# %0 ') +3&'-+0,*,'#$'0$*# )%7+-$*)'09# 4/% 3%).'$+0 /0 .%J*) -*.3*)$+.'%0$* ,% &+ +3&'-+-'E0= "0 %#$%

    -+36$/&* 0*# %0-+)9+)%.*# ,% .%J*)+) &+ 9%#$'E0 ,% %8-%3-'*0%# =

    SER*+(/%,@

    O'.3&'7'-+) %& .+0%J* ,% %8-%3-'*0%# ,% &+ +3&'-+-'E0

    Tareas:

    Y= N%D'#'E0 ,% %& 7&/J* ,% %8-%3-'*0%# ; /#* ,% &+ -&+/#/&+# $);r-+$-5=e= I+0%J* ,% &+ -&F/#/&+ $5)*G @ $5)*G# ; 7&/J* ,% %8-%3-'*0%#=f= 2)%+-'E0 ; -*0D%)#'E0 ,% %8-%3-'*0%#=g= ?0',+.'%0$* ,% %8-%3-'*0%#=h= "8-%3-'*0%# ,% T'3* N/0T'.%=Z= 2)%+-'E0 ,% /0+ 3F9'0+ J#3 ,% %))*)=\= I*,'7'-+-'E0 ,%& 7'-5%)* G%(=8.&=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    83/40

    !!!"#$%&'()*(&$#+#,#"*-.

    83

    "# !"#$% '( ()*(+*,%-(. / *"0#.#"0. *01*2

    2*.* 3/0$* ,% 3+)$',+@ D+.*# + +0+&'+$+M+#%V%&3%)@D%)%.*# 4/% #% %0-+)9+ ,% -+3$/)+) $*,+# &+# %8-%3-'*0%# 4/% #% 3)*,/-%0 /#+0,*

    -&+/#/&+# $);r-+$-5 % '.3)'.'%0,* &*# %))*)%# 3*) &+ -*0#*&+ _D%) '.+9%0`=

    ?/04/% %#$+ 9%#$'E0 %0 /0 3)'.%) .*.%0$* 3/%,+ 3+)%-%)0*# -*))%-$+@ 3)%#%0$+ /0

    3)*(&%.+C +& -+3$/)+) $*,*# &*# .%0#+J%# ,% %))*)@ B#$*# 0/0-+ &&%9+0 + &+# 3+9'0+# 1OP; 3*) &* $+0$*@ /0 /#/+)'* 5+('$/+& ,% &+ +3&'-+-'E0 0* )%-'(')F 0'09A0 .%0#+J% 3*)

    ./-5*# %))*)%# 4/% #% 3)*,/

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    84/40

    !"#$%&'(&$") +),)

    84

    O' &*# /#/+)'*# 0* )%-'(%0 0'09A0 .%0#+J% ,% %))*)@ 0* 3*,)F0 +D'#+) + &*#,%#+))*&&+,*)%# ,% &*# 3)*(&%.+# 4/% &+ +3&'-+-'E0 &%# 3)%#%0$+m + &* #/.*@ 3*,)F0'0,'-+) 4/% &+ +3&'-+-'E0 0* )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    85/40

    !!!"#$%&'()*(&$#+#,#"*-.

    85

    ? -*0$'0/+-'E0 #% ./%#$)+ -E.* 4/%,+ %& .B$*,* .*,'7'-+)N%9'#$)* ,% &+ -&+#%

    >+$+M+#%V%&3%) /0+ D%< +3&'-+,*# &*# -+.('*# ="& )%#$* ,% .B$*,*# #%)F #'.'&+)=

    2E,'9* h=YC _>+$+M+#%V%&3%)=J+D+`

    public int modificarRegistro(String consultaSQL) throws ClassNotFoundException,SQLException {try {!......................} catch (SQLException e) {

    System.out.println("Error de SQL" + e.getMessage());throw e;

    }!..............

    N%+&'+$+M+#%V%&3%) .*,'7'-+)%.*# +-*0$'0/+-'E0 &*# .B$*,*# ,% &+ -&+#% R'()*= R*# -/F&%# A0'-+.%0$% .+)-+0 %& .B$*,*

    -*0 &+# %8-%3-'*0%# 4/% 3/%,% 3)*,/-')=

    2E,'9* h=eC _R'()*=J+D+`

    public void insertar() throws ClassNotFoundException, SQLException {!...........}

    "& A&$'.* 3+#* %# .*,'7'-+) 0/%#$)+ 3F9'0+ 1OP ,% '0#%)-'E0 ; -+3$/)+) &+# %8-%3-'*0%#

    -*0 /0 (&*4/% $);r-+$-5 =

    2E,'9*h=fC _I*#$)+)R'()*=J#3`

    try {LibroAR libro = new LibroAR(isbn, titulo, categoria);libro.insertar();

    } catch (Exception e) {%>

    ? -*0$'0/+-'E0 #% ./%#$)+ /0 ,'+9)+.+ +-&+)+$*)'* ,% -E.* $*,*# %#$*# -+.('*#

    $)+(+J+0 /0',*# 3+)+ -*0#%9/') 4/% &*# .%0#+J%# ,% %))*) &&%9/%0 +& /#/+)'*=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    86/40

    !"#$%&'(&$") +),)

    86

    8# !"#$%&'( * %+(,#"-&'( .# #/%#0%&+(#-

    V%.*# +D+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    87/40

    !!!"#$%&'()*(&$#+#,#"*-.

    87

    2E,'9* h=hC _R'()*=J+D+`

    public static List buscarTodos() throws ClassNotFoundException, SQLException,InstantiationException, IllegalAccessException, InvocationTargetException {}

    P+)+ %D'$+) %#$% 3)*(&%.+ ; #'.3&'7'-+) %& .+0%J* ,% -*.3&'-+,*# -*0J/0$*# ,%%8-%3-'*0%#@ -*0#$)/')%.*# 3+)+ 0/%#$)+ +3&'-+-'E0 /0+ 0/%D+ %8-%3-'E0 ,%0*.'0+,+c>+$+M+#%"8-%3$'*0d= ? -*0$'0/+-'E0 .*#$)+.*# %& ,'+9)+.+ WIR 4/% 0*# 3%).'$% D%)

    ,% 4/B -&+#% 5%)%,+@ +#6 -*.* #/ -E,'9* 7/%0$%=

    2E,'9*h=ZC _>+$+M+#%"8-%3$'*0=J+D+`

    package com.arquitecturajava;public class DataBaseException extends Exception {

    private static final long serialVersionUID = 1L;public DataBaseException() {

    super();}public DataBaseException(String message, Throwable cause) {

    super(message, cause);}public DataBaseException(String message) {

    super(message);}public DataBaseException(Throwable cause) {

    super(cause);}}

    W0+ D%< -)%+,+ %#$+ 0/%D+ %8-%3-'E0@ .*,'7'-+)%.*# %& -E,'9* 7/%0$% ,% 0/%#$)+ -&+#%>+$+M+#%V%&3%) 3+)+ 4/% -*0D'%)$+ $*,+# &+# %8-%3-'*0%# 4/% 3)*,/-% 1>M2 + 0/%#$)*

    0/%D* $'3* ,% %8-%3-'E0 _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    88/405

    !"#$%&'(&$") +),)

    88

    ? -*0$'0/+-'E0 #% ./%#$)+ %& -E,'9* 7/%0$% .*,'7'-+,* ,% /0* ,% &*# .B$*,*# ,% &+

    -&+#% >+$+M+#%V%&3%)=

    2E,'9* h=\C _>+$+M+#%V%&3%)=J+D+`

    public int modificarRegistro(String consultaSQL) throws DataBaseException {Connection conexion = null;

    Statement sentencia = null;int filasAfectadas = 0;try {

    Class.forName(DRIVER);conexion = DriverManager.getConnection(URL, USUARIO,CLAVE);sentencia = conexion.createStatement();filasAfectadas = sentencia.executeUpdate(consultaSQL);

    } catch (ClassNotFoundException e) {System.out.println("Clase no encontrada" + e.getMessage());throw new DataBaseException("Clase no encontrada");

    } catch (SQLException e) {System.out.println("Error de SQL" + e.getMessage());throw new DataBaseException("Error de SQL");

    } finally {if (sentencia != null) {

    try {sentencia.close();} catch (SQLException e) {}if (conexion != null) {

    try {conexion.close();} catch (SQLException e) {}}

    }return filasAfectadas;

    }

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    89/405

    !!!"#$%&'()*(&$#+#,#"*-.

    89

    W0+ D%< )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    90/40

    !"#$%&'(&$") +),)

    90

    M# !"#$%#&'($) +(&,+,+)

    T)+# -*0#%9/') 5*.*9%0%'+$+M+#%"8-%3$'*0@ 0*# ,+.*# -/%0$+ 4/% -/+0,* #% 3)*,/-% /0 %))*) )%-'('.*# %&

    .%0#+J% ,% c"))*) ,% O]Rd _D%) '.+9%0`=

    O'0 %.(+)9*@ +/04/% +3+)%-% %& .%0#+J% ,% %))*) 0* %# %& .%0#+J% ,% %))*) *)'9'0+&4/% #% 3)*,/J*= l#$* #% ,%(% + 4/% 5%.*# -*0#$)/',* 0/%D+# %8-%3-'*0%##/(#$'$/;%0,* &+# %8-%3-'*0%# *)'9'0+&%# 3*) B#$+# @ 3%),'%0,* +#6 &*# .%0#+J%# ,% %))*)*)'9'0+&%# ,%& +3' ,% J+D+ = >% %#$+ 7*).+ #% -*.3&'-+ #*()%.+0%)+ #+(%) -/F& %# %&%))*) )%+& 4/% 0/%#$)+ +3&'-+-'E0 5+ 3)*,/-',*= P+)+ 3*,%) +--%,%) + &+ '07*).+-'E0*)'9'0+& ,%& %))*)@ ,%(%.*# )%,'#%:+) 0/%#$)* #'#$%.+ ,% %8-%3-'*0%# 3+)+ 4/% #*3*)$%%8-%3-'*0%# +0',+,+# = "#$% $'3* ,% %8-%3-'*0%# %# -+3+< ,% .*#$)+) #/ .%0#+J% ,%

    %))*)@ +#6 -*.* %& .%0#+J% ,% %))*) *)'9'0+& 4/% &+# +3'# ,% J+D+ 3)*,/J%)*0 _D%) -E,'9*`

    2E,'9* h=nC _>+$+M+#%V%&3%)=J+D+`

    } catch(ClassNotFoundException e) {System.out.println("Error de acceso al driver" + e.getMessage());throw new DataBaseException("Error de SQL",e);

    }

    ? -*0$'0/+-'E0 #% ./%#$)+ /0 ,'+9)+.+ 4/% -*0$'%0% /0+ %8-%3-'E0 ,% $'3*

    >+$+M+#%"8-%3$'*0 &+ -/F& $'%0% +0',+,+ /0+ %8-%3-'E0 ,% O]R 3+)+ +;/,+) + -&+)'7'-+)=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    91/40

    !!!"#$%&'()*(&$#+#,#"*-.

    91

    W0+ D%< )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    92/40

    !"#$%&'(&$") +),)

    92

    2E,'9*h=Y^C _b0#%)$+)R'()*=J#3`

    try {LibroAR libro = new LibroAR(isbn, titulo, categoria);libro.insertar();

    } catch (DataBaseException e) {%>

    R+# %8-%3-'*0%# +0',+,+# 0*# 5+0 +;/,+,* + 9/+),+) &+ '07*).+-'E0 *)'9'0+& ,% &*#

    %))*)%# _D%) '.+9%0`=

    ^# !"#$%#&'($) +,(-&.$

    ]/%)%.*# +D+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    93/40

    !!!"#$%&'()*(&$#+#,#"*-.

    93

    ?& 5+-%)&* ,% %#$+ .+0%)+@ 3*,)%.*# %&'.'0+) $*,+# &+# -&F/#/&+# $5)*G# ,% 0/%#$)+#-&+#%# ;+ 4/% %#$% $'3* ,% %8-%3-'*0%# J+D+ 0* *(&'9+ + -+3$/)+)&+# ; 3/%,%0 7&/')

    &'()%.%0$% 3*) $*,* %& -E,'9* -*.* ./%#$)+ &+ 7'9/)+=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    94/40

    !"#$%&'(&$") +),)

    94

    W0+ D%< )%+&'+$+M+#%V%&3%)=J#3`

    public int modificarRegistro(String consultaSQL) // no hay excepcionespublic void insertar() //no hay excepciones

    ?# !"#$" &$'()$ *# +"","

    P+)%-% 4/% 5%.*# $%).'0+,*@ #'0 %.(+)9* #' )%D'#+.*# %& %#$+,* ,% 0/%#$)+# 3F9'0+#1OP )%#3%-$* + &+ -+3$/)+ ,% %8-%3-'*0%#@ 0*# ,+)%.*# -/%0$+ ,% 4/% $*,+# &+# 3+9'0+#

    -*0$'%0%0 %& .'#.* (&*4/% $);r-+$-5 _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    95/40

    !!!"#$%&'()*(&$#+#,#"*-.

    95

    "#$% %# *$)* -+#* $63'-* ,% )%3%$'-'E0 ,% -E,'9*@ ,*0,% 3*,%.*# 5+-%) /#* ,%& 3)'0-'3'*>NU 3+)+ %8$)+%) &+ )%#3*0#+('&',+, ,% &+ 9%#$'E0 ,% %))*)%# ,% &+ 3F9'0+ 1OP ;-%0$)+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    96/40

    !"#$%&'(&$") +),)

    96

    W0+ D%< -)%+,+ &+ 3F9'0+ 1OP@ ,%(%.*# -*07'9/)+) 0/%#$)+ +3&'-+-'E0 G%( 3+)+ 4/% #%

    +3*;% %0 %#$+ 0/%D+ 3F9'0+ ,% %))*)= P+)+ %&&*@ .*,'7'-+)%.*# %& 7'-5%)* G%(=8.&=

    H#!"!"#"$%& #"$()&* +),-./0

    "& 7'-5%)* G%(=8.& %# %& 7'-5%)* ,% -*07'9/)+-'E0 ,% $*,+ +3&'-+-'E0 G%( J+D+ ; #%

    %0-/%0$)+ /('-+,* %0 &+ -+)3%$+ ["MtbaL = ? -*0$'0/+-'E0 #% ./%#$)+ %& (&*4/% ,%-E,'9* 4/% +:+,')%.*# + B#$% 3+)+ ,+) ,% +&$+ -*))%-$+.%0$% &+ 3F9'0+ ,% %))*) %0 &+

    +3&'-+-'E0=

    2E,'9* h=YfC _G%(=8.&`

    java.lang.RuntimeException/Error.jsp

    !.............

    N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    97/40

    !!!"#$%&'()*(&$#+#,#"*-.

    97

    !"#$%"&

    "0 %#$% -+36$/&* 0*# 5%.*# -%0$)+,* %0 #'.3&'7'-+) %& .+0%J* ,% %8-%3-'*0%# ,% &+

    +3&'-+-'E0@ 3+)+ &* -/F& 5%.*# )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    98/405

    !"#$%&'(&$") +),)

    98

    !!"#$%&

    "0 %& -+36$/&* +0$%)'*) 0*# 5%.*# %0-+)9+,* ,% #'.3&'7'-+) &+ 9%#$'E0 ,% %8-%3-'*0%# ,%0/%#$)+ +3&'-+-'E0= O'0 %.(+)9*@ #'%.3)% &'9+,* + &+ 9%#$'E0 ,% %8-%3-'*0%# #%%0-/%0$)+ &+ 9%#$'E0 ,% &*# 7'-5%)*# ,% &*9 = V+#$+ %#$% .*.%0$* 0* 5%.*# $)+$+,* %&-+#* + 7*0,* ; 0*# 5%.*# &'.'$+,* '.3)'.') .%0#+J%# 3*) &+ -*0#*&+ -*0 (&*4/%# ,%

    -E,'9* ,%& #'9/'%0$% %#$'&*=

    2E,'9* Z=YC _>+$+M+#%V%&3%)=J#3`

    System.out.println(e.getMessage())

    "# %D',%0$% 4/% %#$+ 7*).+ ,% $)+(+J+) 0* %# &+ +,%-/+,+ -/+0,* #% $)+$+ ,%+3&'-+-'*0%# )%+&%#= ?#6 3/%#@ %0 %#$% -+36$/&* 0*# %0-+)9+)%.*# ,% '0$)*,/-') /0 ?Pb,% &*9 ; .*,'7'-+)%.*# 0/%#$)+ +3&'-+-'E0 3+)+ 4/% 5+9+ /#* ,% %&&+ = "0 0/%#$)* -+#*D+.*# + /#+) &*9gJ 4/% %# /0 #$+0,+), ,% 7+-$* %0 &+ 3&+$+7*).+ 1+D+= >% %#$+ .+0%)+@

    &*# *(J%$'D*# ,%& -+36$/&* #%)F0C

    SER*+(/%,C

    b0$)*,/--'E0 ; .+0%J* ,% &*9gJ

    ?-$/+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    99/40

    !!!"#$%&'()*(&$#+#,#"*-.

    99

    h= I+0%J* ,% R*9g=3)*3%)$'%#=

    Z= b0$%9)+-'E0 ,% &*9gJ %0 &+ +3&'-+-'E0=

    "# !"#$%&%'()" +, &-./0P+)+ 3*,%) $)+(+J+) -*0 %& +3' ,% &*9gJ ,%(%.*# *($%0%) %& 3)*,/-$* ,% &+ G%(

    ,%#-+)9F0,*&* ,% &+ #'9/'%0$% /)&=

    5$$3CrrGGG=+3+-5%=*)9r,;0r-&*#%)=-9'r&*99'09r&*9gJrY=e=YZr+3+-5%t&*9gJtY=e=YZ=$+)=9

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    100/4

    !"#$%&'(&$") +),)

    100

    N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    101/4

    !!!"#$%&'()*(&$#+#,#"*-.

    101

    "0 %& -+#* ,%& +3' ,% &*9gJ &+ %#$)/-$/)+ %# ./; #'.'&+) ; %#$F -*.3/%#$+ 3*) %& #'9/'%0$%

    ,'+9)+.+ ,% -&+#%#@ 4/% #')D% 3+)+ 3+)+&%&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    102/4

    !"#$%&'(&$") +),)

    102

    2E,'9*Z=eC _R*9eW#+0,*R*9=J+D+`

    package com.arquitecturajava.logs;import org.apache.log4j.ConsoleAppender;import org.apache.log4j.Logger;import org.apache.log4j.PatternLayout;

    public class log02UsandoLog {public static void main(String[] args) {

    PatternLayout patron= new PatternLayout("%m %n");ConsoleAppender consola= new ConsoleAppender(patron);Logger log= Logger.getLogger("milog");log.addAppender(consola);log.info("realizando un log sencillo");

    }}

    W0+ D%< -*0#$)/',* %& -E,'9* D+.*# + D%) 4/% )%#/&$+,* ./%#$)+ #/ %J%-/-'E0

    2*.* 3*,%.*# D%)@ '.3)'.% /0+ &60%+ ,% $%8$* 3*) &+ -*0#*&+= k+.*# + -*0$'0/+-'E0 +

    +0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    103/4

    !!!"#$%&'()*(&$#+#,#"*-.

    103

    W0+ D%< ,%7'0',* %& $'3* ,% &+;*/$@ %# .*.%0$* ,% -*0#$)/') %& +33%0,%) * )%-/)#* %0%& 4/% #% D+0 + '.3)'.') &*# ,'#$'0$*# .%0#+J%# ,% %))*) @ %& +33%0,%) )%-'(')F /0 &+;*/$

    -*.* 3+)F.%$)*=

    2E,'9*Z=gC _R*9eW#+0,*R*9=J+D+`

    ConsoleAppender consola= new ConsoleAppender(patron);

    "0 %#$% -+#* 5%.*# -*0#$)/',* %& +33%0,%) .F# #%0-'&&* 4/% '.3)'.% &*# .%0#+J%# + &+-*0#*&+ -/.3&'%0,* -*0 %& 3+$)*0 %#3%-'7'-+,*= "& #'9/'%0$% 3+#* #%)F &+ -)%+-'E0 ,% /0R*99%) / *(J%$* ,% &*9 4/% #% %0-+)9+ ,% 9%#$'*0+) %#$*# .%0#+J%#= "#$% &*99%) ,%(%

    $%0%) /0 0*.()% _c.'&*9d`=

    2E,'9* Z= hC _R*9eW#+0,*R*9=J+D+`

    Logger log= Logger.getLogger("milog");

    W0+ D%< -)%+,* %& *(J%$* ,% &*9@ %# 0%-%#+)'* +#'90+)&% %& +33%0,%) +& -/F& D+ + %#-)'(')

    %0 %#$% -+#* &+ -*0#*&+=

    2E,'9* Z=ZC _R*9eW#+0,*R*9=J+D+`

    log.addAppender(consola);

    P*) /&$'.*@ A0'-+.%0$% 0*# 4/%,+ '0D*-+) +& *(J%$* ,% &*9 ; .+0,+)&% '.3)'.') /0

    .%0#+J% + $)+DB# ,%& .B$*,* '07*@ 4/% .F# +,%&+0$% %83&'-+)%.*# ,%$+&&+,+.%0$%=

    2E,'9* Z=\C _R*9eW#+0,*R*9=J+D+`

    log.info("realizando un log sencillo");

    "& )%#/&$+,* ,% $*,* %#$% (&*4/% ,% -E,'9* %# 4/%@ +& %J%-/$+) %& 3)*9)+.+@ #%

    '.3)'.')F /0 .%0#+J% 3*) &+ -*0#*&+ _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    104/4

    !"#$%&'(&$") +),)

    104

    "#$% #%0-'&&* %J%.3&* 0*# 5+ #%)D',* 3+)+ '0$)*,/-') %& 7/0-'*0+.'%0$* ,%& +3' ,% &*9gJ?5*)+ #%9/')%.*# +D+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    105/4

    !!!"#$%&'()*(&$#+#,#"*-.

    105

    W0+ D%< 4/% $%0%.*# -&+)*# &*# ,'#$'0$*# $'3*# ,% .%0#+J% 4/% /0+ +3&'-+-'E0 3/%,%'.3)'.') +3*;F0,*#% %0 %& +3' ,% &*9gJ @D+.*# + -)%+) /0 0/%D* %J%.3&* -*0 %&

    #'9/'%0$% (&*4/% ,% -E,'9*=

    2E,'9* Z=nC _R*9ea'D%&%#=J+D+`

    public class Log02Niveles {public static void main(String[] args) {

    PatternLayout patron = new PatternLayout("%m %n");ConsoleAppender consola = new ConsoleAppender(patron);Logger log = Logger.getLogger("milog");log.addAppender(consola);log.fatal("realizando un log sencillo nivel FATAL");log.error("realizando un log sencillo nivel ERROR");log.warn("realizando un log sencillo nivel WARN");log.info("realizando un log sencillo nivel INFO");log.debug("realizando un log sencillo nivel DEBUG");

    }}

    N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    106/4

    !"#$%&'(&$") +),)

    106

    >% .+0%)+ 4/% #% 3/%,% -*07'9/)+) %& #'#$%.+ ,% &*9 3+)+ 4/% #E&* #% '.3)'.+0 3*) &+-*0#*&+ &*# .%0#+J%# 4/% 3%)$%0%

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    107/4

    !!!"#$%&'()*(&$#+#,#"*-.

    107

    2E,'9*Z=YeC _R*9ea'D%&%#=J+D+`

    public static double calcularImporte(double importe) {Logger log = crearLog();log.info("entramos en la funcion");if (importe < 0) {

    log.warn("el importe no puede ser negativo");throw new RuntimeException("operacion no soportada con el

    importe");} else {

    if (importe > 0 && importe < 100) {log.info("compra con el 10 % de descuento");return importe * 0.90;

    } else {log.info("compra con el 20% de descuento");return importe * 0.80;

    }}

    log.debug(el importe calculado es :+ importe);}

    "# (+#$+0$% 3)*(+(&% 4/%@ -/+0,* %#$%.*# ,%#+))*&&+0,* %& 3)*9)+.+@ ,%#%%.*# 4/%%& 0'D%& ,% &*9 #% %0-/%0$)% %0 .*,* >"MWK ,% $+& 7*).+ 4/% +;/,% + &*#,%#+))*&&+,*)%# + #*&D%0$+) -/+&4/'%) $'3* ,% 3)*(&%.+ + $)+DB# ,% #/# $)+

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    108/4

    !"#$%&'(&$") +),)

    108

    2E,'9* Z=YfC _&*9gJ=3)*3%)$'%#`

    log4j.rootLogger = DEBUG, AppenderDeConsolalog4j.appender.AppenderDeConsola=org.apache.log4j.ConsoleAppenderlog4j.appender.miAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.miAppender.layout.conversionPattern=%m%n

    "0 %#$% 3/0$* ;+ %# ./-5* .+# #%0-'&&* %0$%0,%) -+,+ &60%+@ +/0 +#6 &+# D+.*# + ')-*.%0$+0,* /0+ 3*) /0+=

    2E,'9* Z=YgC _&*9gJ=3)*3%)$'%#`

    log4j.rootLogger = DEBUG, AppenderDeConsola

    R+ 3)'.%)+ &60%+ ,%7'0% %& &*99%) 3)'0-'3+& + 0'D%& ,% >"MWK ; &% +#'90+ /0 +33%0,%),%0*.'0+,* c?33%0,%)>%2*0#*&+d =k+.*# + +0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    109/4

    !!!"#$%&'()*(&$#+#,#"*-.

    109

    2E,'9* Z=Y\ _&*9gJ=3)*3%)$'%#`

    com.arquitecturajava

    "& -/F& 5+-% )%7%)%0-'+ +& 0*.()% ,% &*# 3+-H+9%# ,% 0/%#$)* 3)*;%-$* ; #%)F %& 0*.()%4/% #% /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    110/4

    !"#$%&'(&$") +),)

    110

    2E,'9* Z=Yj _&*9gJ=3)*3%)$'%#`

    log4j.rootLogger = DEBUG, miappenderlog4j.logger.milog = com.arquitecturajava.logslog4j.appender.miappender=org.apache.log4j.ConsoleAppenderlog4j.appender.miappender.layout=org.apache.log4j.PatternLayout

    log4j.appender.miappender.layout.conversionPattern=%m%n

    W0+ D%< )%+&'+$+M+#%V%&3%) 3+)+ 4/% #% %0-+)9/% ,% #/(#$'$/') &+# &60%+# ,% O;#$%.=*/$ 3*) %& /#*

    ,%& +3' ,% &*9 _D%) '.+9%0`=

    2E,'9* Z=Yn _>+$+M+#%V%&3%)=J+D+`

    public class DataBaseHelper {

    private static final Logger log = Logger.getLogger(DataBaseHelper.class.getPackage().getName());public int modificarRegistro(String consultaSQL) {

    !!!!!!!try {

    !!!.} catch (ClassNotFoundException e) {

    log.error("Error de acceso al driver" + e.getMessage());throw new DataBaseException("Error de SQL", e);

    } catch (SQLException e) {log.error("Error de SQL" + e.getMessage());throw new DataBaseException("Error de SQL", e);

    } finally {if (sentencia != null) {

    try {sentencia.close();

    } catch (SQLException e) {log.error("Error con la sentencia" +

    e.getMessage());}}if (conexion != null) {

    try {conexion.close();

    } catch (SQLException e) {log.error("Error cerrando la conexion"

    +e.getMessage());}}}return filasAfectadas;}

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    111/4

    !!!"#$%&'()*(&$#+#,#"*-.

    111

    !"#$%"&

    "0 %#$% -+36$/&* 5%.*# $*.+,* -*0$+-$* -*0 %& 7/0-'*0+.'%0$* ,%& ?Pb ,% &*9gJ @ %&%#$F0,+) ,% 7+-$* ,% &+ 3&+$+7*).+ 1"" + &+ 5*)+ ,% 9%#$'*0+) &*# .%0#+J%# ,% &*9 ,% /0+

    +3&'-+-'E0 = R* 5%.*# -*07'9/)+,* 3+)+ 4/% 7/0-'*0% %0 0/%#$)* 3)*;%-$*=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    112/4

    !"#$%&'(&$") +),)

    112

    !!!" $%&'(&$&) *+, - ." /)0.") 123

    V%.*# +D+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    113/4

    !!!"#$%&'()*(&$#+#,#"*-.

    113

    SER*+(/%,

    ?3&'-+) %& 3)'0-'3'* ONP + 0/%#$)+ +3&'-+-'E0

    G7.*7, @

    Y= N%#3*0#+('&',+,%# ,% &+ +3&'-+-'E0 ; %& 3)'0-'3'* ONPe= 2*0#$)/--'E0 ,% /0 #%)D&%$ -*0$)*&+,*)f= I+3%* ,% O%)D&%$g= O%)D&%$ 2*0$)*&+,*) ; 7/0-'*0+&',+,h= b0#%)-'E0 %0 .*,%&* Ik2Z= M*))+) %0 %& .*,%&* Ik2\= ",'$+) %0 %& .*,%&* Ik2j= L'&$)+) %0 %& .*,%&* Ik2

    "# 1*,-%&,7E(:(474*, 4* :7 7-:('7'(;& C *: -.(&'(-(% J1Q

    O' )%D'#+.*# &+# )%#3*0#+('&',+,%# 0/%#$)* -E,'9* 7/%0$%@ 3*,)%.*# %0-*0$)+)0*# -*0

    &* #'9/'%0$% C

    Y= Q7N(&7,

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    114/4

    !"#$%&'(&$") +),)

    114

    "0 3)'0-'3'* +& #%) /0+ 3F9'0+ 1OP #% ,%(%)6+ %0-+)9+) ,% 3)%#%0$+) '07*).+-'E0 +&/#/+)'*= O'0 %.(+)9*@ %# %D',%0$% 4/% %#$+ 3F9'0+ 0* '0-&/;% 0' /0+ #*&+ %$'4/%$+ 5$.&; 0* 3)%#%0$+ 0'09/0+ '07*).+-'E0@ 3*) $+0$*@ #/ )%#3*0#+('&',+, 0* %# 3)%#%0$+),+$*#= P/%,% 3+)%-%)0*# 4/% #% $)+$+ ,% /0+ -&+#% -/;+ )%#3*0#+('&',+, %# (*))+),+$*#@ #'0 %.(+)9*@ #' )%D'#+.*# %& 3)*3'* -E,'9* ,% &+ 3F9'0+@ D%)%.*# -*.* &+ 3F9'0+'0#$+0-'+ /0 *(J%$* ,% $'3* R'()* ; %# B#$% %& %0-+)9+,* ,% (*))+) %& )%9'#$)* ,% &+ (+#%

    ,% ,+$*# _D%) -E,'9*`=

    2E,'9* \=e _M*))+)R'()*=J#3`

    Libro libro= new Libro(isbn);libro.borrar();

    ?#6 3/%# v-/F& %# )%+&.%0$% &+ )%#3*0#+('&',+, ,% %#$+ 3F9'0+w ?3+)%0$%.%0$% 0*$'%0% )%#3*0#+('&',+,%#@ 3%)* #' +#6 7/%)+@ 3*,)6+.*# %&'.'0+)&+ #'0 3%)J/'-'* 3+)+0/%#$)+ +3&'-+-'E0= "# %D',%0$% 4/% #' %&'.'0+.*# &+ 3F9'0+@ 0* 3*,)%.*# (*))+) &*#)%9'#$)*#= l#$* #% ,%(% + 4/% &+ 3+9'0+ #6 $'%0% /0+ )%#3*0#+('&',+, ; B#$+ %# &+ ,%'%&+.%:= "# ,%-') @#% %0-+)9+ ,% ,%7'0') 4/B 3F9'0+ #% -+)9+ %0 -+,+ .*.%0$*@ +#6 -*.*

    4/B -&+#% ; 4/B .B$*,* #% '0D*-+ _D%) -E,'9*`=

    ?#6 @0*# %0-*0$)+.*# -*0 /0+ 0/%D+ )%#3*0#+('&',+, ,%0$)* ,% 0/%#$)+ +3&'-+-'E0C %&

    -*0$)*&= "#$+ )%#3*0#+('&',+, 0* %# %83)%#+,+ A0'-+.%0$% 3*) &+ 3F9'0+ M*))+)R'()*=J#3=#'0* 4/% 3)F-$'-+.%0$% 3*) $*,+# &+# 3F9'0+ ,% 0/%#$)+ +3&'-+-'E0= P*) %J%.3&* &+3F9'0+ I*#$)+)R'()*#=J#3 #% %0-+)9+ ,% -*0$)*&+) + 4/B .B$*,*# ,% &+ -&+#% R'()*,%(%.*# '0D*-+) 3+)+ 3)%#%0$+) &*# ,+$*#= ?#6 3/%# &+ )%#3*0#+('&',+, ,% -*0$)*& #%

    %0-/%0$)+ ,'#$)'(/',+ %0$)% ,'#$'0$+# 3F9'0+ ,% ,'D%)#+# .+0%)+# _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    115/4

    !!!"#$%&'()*(&$#+#,#"*-.

    115

    ?5*)+ ('%0@ %0 %& -+#* ,% &+ 3F9'0+ I*#$)+)R'()*#=J#3 0*# %0-*0$)+.*# +0$% /0 -&+)*

    '0-/.3&'.'%0$* ,%& 3)'0-'3'* ONP ;+ 4/% &+ 3F9'0+ %0 -/%#$'E0 #% 5+-% -+)9* ,% ,*#)%#3*0#+('&',+,%# -&+)+.%0$% '0,%3%0,'%0$%#C &+ ,% -*0$)*& ; &+ ,% 3)%#%0$+-'E0 _D%)

    '.+9%0`=

    P+)+ #*&D%0$+) %#$% 3)*(&%.+@ ,%(%.*# %8$)+%) &+ )%#3*0#+('&',+, ,% &+ 3F9'0+ ;/('-+)&+ %0 *$)* -*.3*0%0$%m 3%)* 0* 3*,)F #%) 0'09/0* ,% &*# -*.3*0%0$%# 4/%

    +-$/+&.%0$% $%0%.*# ,%7'0',*# ;+ 4/% B#$*# ;+ $'%0%0 +#*-'+,+ /0+ )%#3*0#+('&',+,C&+# 3F9'0+# &+ 3)%#%0$+-'E0 ; &+# -&+#%# &+ ,% 3%)#'#$%0-'+= P+)+ 3*,%) %8$)+%) %#$+)%#3*0#+('&',+, $%0,)%.*# 4/% +3*;+)0*# %0 /0 0/%D* $'3* ,% -*.3*0%0$% C /0

    J*./:*+#

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    116/4

    !"#$%&'(&$") +),)

    116

    0# $%&,+.3(. 3& ,*./:*+ '%&+.%:74%.

    W0 #%)D&%$ %# /0+ -&+#% 1+D+ 4/% %# -+3+< ,% 9%0%)+) -E,'9* 5$.& -*.* &* 5+-% /0+3F9'0+# 1OP 3%)* $+.('B0 %# -+3+< ,% 9%#$'*0+) &+ -*./0'-+-'E0 %0$)% D+)'+# ,% %#$+#3F9'0+#= "#$+ -+3+-',+, %# &+ 4/% D+.*# + /$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    117/4

    !!!"#$%&'()*(&$#+#,#"*-.

    117

    8# I7-*% 4* J*./:*+

    W0+ D%< -)%+,* %& #%)D&%$@ ,%(%.*# +:+,') /0 .+3%* ,% B#$% + $)+DB# ,%& 7'-5%)*G%(=8.& 3+)+ ,%J+)&* -*.3&%$+.%0$% -*07'9/)+,* ; 3*,%) +--%,%) +& .'#.* ,%#,% &+

    #'9/'%0$% /)& r2*0$)*&+,*)R'()*#=,*

    2E,'9* \=g _G%(=8.&`

    ControladorLibrosControladorLibroscom.arquitecturajava.aplicacion.ControladorLibrosControladorLibros/ControladorLibros

    M# J*./:*+ $%&+.%:74%. C 53&'(%&7:(474

    N%+&'%R'()*# ; &'#$+>%2+$%9*)'+#@,%7'0'%0,* 3+)$% ,% &+ )%#3*0#+('&',+, ,% -*0$)*&= k+.*# + +0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    118/4

    !"#$%&'(&$") +),)

    118

    "#$+# &60%+# #% %0-+)9+0 ,% +&.+-%0+) +.(+# &'#$+# %0 %& *(J%$* )%4/%#$@ 4/% %#+--%#'(&% $+0$* 3*) %& #%)D&%$ -*0$)*&+,*) -*.* 3*) &+# 3+9'0+# 1OP ; 5+-% /0+ 7/0-'E0

    ,% '0$%).%,'+)'* _D%) '.+9%0`=

    W0+ D%< %& *(J%$* )%4/%#$ '0-&/;% +.(+# &'#$+# @ /#+)%.*# %& #'9/'%0$% (&*4/% ,% -E,'9*

    3+)+ )%,')'9') &+ 3%$'-'E0 5+-'+ &+ 3+9'0+ I*#$)+)R'()*#=J#3=

    2E,'9* \=\ _2*0$)*&+,*)R'()*#=J+D+`

    despachador = request.getRequestDispatcher("MostrarLibros.jsp");despachador.forward(request, response);

    N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    119/4

    !!!"#$%&'()*(&$#+#,#"*-.

    119

    2E,'9* \=j _I*#$)+)R'()*=J#3`

    seleccionar


    BorrarEditar

    W0+ D%< )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    120/4

    !"#$%&'(&$") +),)

    120

    V%.*# /#+,* %& 3)'0-'3'* ONP 3+)+ #%3+)+) )%#3*0#+('&',+,%# %0 &+ +3&'-+-'E0 ; ,%7*).+ '0,')%-$+ 5%.*# ,'#%:+,* /0+ +)4/'$%-$/)+ 4/% -/.3&% -*0 %& 3+$)E0 Ik2 %0 %&

    -/F& -+,+ -*.3*0%0$% $'%0% /0 )*& -%))+,* _D%) '.+9%0`=

    k+.*# + #%9/') +D+0

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    121/4

    !!!"#$%&'()*(&$#+#,#"*-.

    121

    M# 9&,*.'(;& '%& )%4*:% IU$

    "0 %#$+ $+)%+ D+.*# + .*,'7'-+) &+ +3&'-+-'E0 3+)+ 4/% $+0$* &+ 3+)$% ,% .*#$)+) -*.*&+ ,% '0#%)$+) %#$B0 -*0#$)/',+# #*()% /0 .*,%&* Ik2= P+)+ %&&* ,%7'0')%.*# &+#

    #'9/'%0$%# $)%# WNR# +#*-'+,+# +& -*0$)*&+,*)=

    I*#$)+)R'()*#=,*

    L*)./&+)'*R'()*b0#%)$+)=,*

    b0#%)$+)R'()*=,*

    >%3%0,'%0,* ,% &+ WNR 4/% #% #*&'-'$% +& 2*0$)*&+,*) 3*) %J%.3&*2*0$)*&+,*)R'()*#rI*#$)+)R'()*#=,* %& -*0$)*&+,*) )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    122/4

    !"#$%&'(&$") +),)

    122

    f= "& -*0$)*&+,*) 0*# )%,')'9% + &+ 3+9'0+ L*)./&+)'*R'()*=J#3 ; ./%#$)+ &+ &'#$+,% -+$%9*)6+# -+)9+,+=

    g= N%&&%0+.*# %& 7*)./&+)'* % '0D*-+.*# +& -*0$)*&+,*) 3+#+0,* -*.* /)&(&,*.+7.L(E.%#4%

    h= "& -*0$)*&+,*) '0D*-+ &+ &+ -&+#% R'()* % '0#%)$+ &*# ,+$*# %0 &+ (+#% ,%,+$*#= W0+ D%< )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    123/4

    !!!"#$%&'()*(&$#+#,#"*-.

    123

    ^# d%..7. *& )%4*:% IU$

    "# %& .*.%0$* ,% 3)*9)%#+) ; +3&'-+) %& .*,%&* Ik2 + &+ 7/0-'*0+&',+, ,% (*))+)= P+)+%&&* +:+,')%.*# /0+ 0/%D+ WNR + 0/%#$)* .*,%&*=

    M*))+)R'()*=,*

    "& -E,'9* 4/% #% %0-+)9+)F ,% 9%#$'*0+) &+ 3%$'-'E0 ,% %#$+ /)& %# %& #'9/'%0$%C

    2E,'9* \=Y^ _2*0$)*&+,*)R'()*#=J+D+`

    else {

    String isbn = request.getParameter("isbn");Libro libro = newLibro(isbn);libro.borrar();despachador = request.getRequestDispatcher("MostrarLibros.do");}

    P+)+ 4/% %& -E,'9* 7/0-'*0% -*))%-$+.%0$%@ ,%(%.*# .*,'7'-+) %& %0&+-% ,% &+ 3+9'0+

    I*#$)+)R'()*#=J#3 _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    124/4

    !"#$%&'(&$") +),)

    124

    2E,'9* \=YY _2*0$)*&+,*)R'()*#=J+D+`

    Borrar

    ? -*0$'0/+-'E0 #% ./%#$)+ %& 0/%D* 7&/J* ,% &+ +3&'-+-'E0=

    "#$+ %# &+ %83&'-+-'E0 ,%$+&&+,+ ,% -+,+ /0+ ,% &+# 3%$'-'*0%#C

    Y= P/+.*# %0 %& (*$E0 ,% (*))+) + 0'D%& ,% /0* ,% &*# )%9'#$)*# % '0D*-+.*# +&-*0$)*&+,*) -*0 M*))+)R'()*=,*

    e= "& -*0$)*&+,*) '0D*-+ + &+ -&+#% +-$'D% )%-*), + #/ .B$*,* (*))+) ; (*))+ %&)%9'#$)*= W0+ D%< 5%-5* B#$*@ '0D*-+ (/#-+)T*,*# ; (/#-+)2+$%9*)'+# 3+)+

    -+)9+) &*# ,+$*# 0%-%#+)'*#=f= "& -*0$)*&+,*) 0*# )%,')'9% + &+ 3F9'0+ I*#$)+#R'()*#=J#3

    W0+ D%< -*.3&%$+,+ &+ $+)%+ ,% (*))+) + $)+DB# ,%& .*,%&* Ik2 @ 0*# ,+)%.*# -/%0$+

    ,% 4/% &+ 3+9'0+ M*))+)R'()*=J#3 ;+ 0* %# 0%-%#+)'+ _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    125/4

    !!!"#$%&'()*(&$#+#,#"*-.

    125

    ?# F4(+7. *& )%4*:% IU$

    R+ $+)%+ ,% %,'$+) 3)%#%0$+ 9)+0,%# #'.'&'$/,%# -*0 &+ $+)%+ ,% '0#%)$+) ; 0*# 3%).'$')F,% 0/%D* %&'.'0+) *$)+ 3F9'0+ _",'$+)R'()*=J#3` ,% &+ +3&'-+-'E0= P+)+ -*0#$)/') &+7/0-'*0+&',+, ,% %,'-'E0 0%-%#'$+)%.*# +:+,') /0+ 0/%D+ WNR + &+ 9%#$'E0 ,%&

    -*0$)*&+,*) A%.)3:7.(%F4(+7.L(E.%#4% 4/% 0*# )%,')'9')F + &+ 3+9'0+L*)./&+)'*",'$+)R'()*=,*= k+.*# + D%) + -*0$'0/+-'E0 %& -E,'9*C

    2E,'9* \=Ye _2*0$)*&+,*)R'()*#=J+D+`

    } else if (request.getServletPath().equals("/FormularioEditarLibro.do")){String isbn = request.getParameter("isbn");List listaDeCategorias = Libro.buscarTodasLasCategorias ();Libro libro = Libro.buscarPorClave(request.getParameter("isbn"));request.setAttribute("listaDeCategorias", listaDeCategorias);request.setAttribute("libro", libro);

    despachador = request.getRequestDispatcher("FormularioEditarLibro.jsp");

    W0+ D%< -)%+,* %#$% (&*4/% ,% -E,'9* &+ +3&'-+-'E0 5+ ,% #%) -+3+< ,% .*,'7'-+) &*#

    ,+$*# %8'#$%0$%# %0 %& 7*)./&+)'* ; #+&D+) &*# -+.('*# _D%) '.+9%0`=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    126/4

    !"#$%&'(&$") +),)

    126

    ? -*0$'0/+-'E0 #% ./%#$)+ %& (&*4/% ,% -E,'9* 4/% #% %0-+)9+)6+ ,% +-%3$+) &*#-+.('*# ; #+&D+)&*#=

    }else {

    String isbn = request.getParameter("isbn");String titulo = request.getParameter("titulo");String categoria = request.getParameter("categoria");Libro libro = new Libro(isbn, titulo, categoria);libro.salvar();despachador = request.getRequestDispatcher("MostrarLibros.do");

    }

    k+.*# + %83&'-+) .'0/-'*#+.%0$% -+,+ /0+ ,% &+# 3%$'-'*0%# ,% &+ $+)%+ ,% %,'-'E0=

    Y= P/+.*# %0 %& (*$E0 ,% %,'$+) + 0'D%& ,% /0* ,% &*# )%9'#$)*# % '0D*-+.*# +&-*0$)*&+,*) -*0 L*)./&+)'*",'$+)R'()*=,*

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    127/4

    !!!"#$%&'()*(&$#+#,#"*-.

    127

    e= "& -*0$)*&+,*) '0D*-+ + &+ -&+#% R'()* + #/ .B$*,* (/#-+)P*)2&+D%f= "& -*0$)*&+,*) 0*# )%,')'9% + &+ 3+9'0+ L*)./&+)'*",'$+)R'()*=J#3@ .*#$)+0,* &*#

    ,+$*# + .*,'7'-+)=g= I*,'7'-+.*# &*# ,+$*# ,%& 7*)./&+)'*@ 3/+.*# +& (*$E0 ,% #+&D+) % '0D*-+.*#

    + O+&D+)R'()*=,*=h=

    "& -*0$)*&+,*) '0D*-+ +& .B$*,* #+&D+) 3+)+ +-$/+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    128/4

    !"#$%&'(&$") +),)

    128

    W0+ D%< +:+,',+ %#$+ /)& ; .*,'7'-+,+ &+ 3+9'0+ I*#$)+)R'()*#=J#3@ 3*,)%.*# +:+,') %'9/'%0$% (&*4/% ,% -E,'9* +& -*0$)*&+,*) ,% $+& 7*).+ 4/% #% %0-+)9/% ,% )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    129/4

    !!!"#$%&'()*(&$#+#,#"*-.

    129

    2+,+ /0+ ,% &+# 3%$'-'*0%# ,% &+ $+)%+ ,% %,'-'E0 %0 %83&'-+-'E0 3*).%0*)'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    130/4

    !"#$%&'(&$") +),)

    130

    despachador = request.getRequestDispatcher("MostrarLibros.do");

    } else if (request.getServletPath().equals("/FormularioEditarLibro.do")) {String isbn = request.getParameter("isbn");List listaDeCategorias = Libro.

    buscarTodasLasCategorias();

    Libro libro = Libro.buscarPorClave(request.getParameter("isbn");request.setAttribute("listaDeCategorias", listaDeCategorias);request.setAttribute("libro", libro);

    despachador = request.getRequestDispatcher("FormularioEditarLibro.jsp");

    } else if (request.getServletPath().equals("/SalvarLibro.do")) {

    String isbn = request.getParameter("isbn");String titulo = request.getParameter("titulo");

    String categoria = request.getParameter("categoria");Libro libro = new Libro(isbn, titulo, categoria);libro.salvar();despachador = request.

    getRequestDispatcher("MostrarLibros.do");} else {

    List listaDeLibros = null;List listaDeCategorias =

    !!!!!!!!!!!!!!!!.Libro.buscarTodasLasCategorias();if (request.getParameter("categoria") == null

    ||!!!!!!!!!..request.getParameter("categoria").equals("seleccionar")) {

    listaDeLibros = Libro.buscarTodos();} else {

    listaDeLibros = Libro.buscarPorCategoria(request.getParameter("categoria"));

    }request.setAttribute("listaDeLibros", listaDeLibros);request.setAttribute("listaDeCategorias", listaDeCategorias);despachador = request.

    getRequestDispatcher("MostrarLibros.jsp");}despachador.forward(request, response);

    }}

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    131/4

    !!!"#$%&'()*(&$#+#,#"*-.

    131

    !"#$%"&

    W0+ D%< 7'0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    132/4

    !"#$%&'(&$") +),)

    132

    !!!"#$

    ?-+(+.*# ,% +3&'-+) %& 3+$)E0 Ik2 + 0/%#$)+ +3&'-+-'E0@ +3*;F0,*0*# %0 %& 3)'0-'3'*ONP @+/0 +#6 /0 ,%#+))*&&+,*) 3/%,% ,%-',') 0* /#+) %#$% 3+$)E0 ,% ,'#%:* ; #%9/')/#+0,* #-)'3$&%$ ,% 1OP %0 #/# 3F9'0+#= P+)+ %D'$+) %#$% 3)*(&%.+@ %0 %#$% 0/%D*-+36$/&* .*,'7'-+)%.*# &+# 3F9'0+# ,% 0/%#$)+ +3&'-+-'E0 3+)+ 4/% /#% 1+D+ O$+0,+),T+9 R'()+); _1OTR` -*.* &'()%)6+ ,% %$'4/%$+#@ &+ -/F& 0*# +;/,+)F + #'.3&'7'-+) %&

    ,%#+))*&&* ; %D'$+)F %& /#* ,% #-)'3$&%$@ *($%0'%0,* /0+# 3+9'0+# .F# -&+)+#=

    SER*+(/%,@

    W$'&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    133/4

    !!!"#$%&'()*(&$#+#,#"*-.

    133

    "# 9&,+7:7'(;& 4* % &+ -/F& 3*,)%.*# *($%0%) &+# #'9/'%0$%# &'()%)6+#

    J#$&=J+)

    #$+0,+),=J+)

    W0+ D%< *($%0',+# &+# &'()%)6+#@ &+# /('-+)%.*# %0 %& ,')%-$*)'* ["MtbaLr&'( ,% 0/%#$)+

    +3&'-+-'E0 _D%) '.+9%0`=

    N%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    134/4

    !"#$%&'(&$") +),)

    134

    ? -*0$'0/+-'E0 #% ./%#$)+ /0 %J%.3&* #%0-'&&* ,% &+# ,'7%)%0-'+# %0$)% +.(+#

    $%-0*&*96+# + &+ 5*)+ ,% '.3)'.') '07*).+-'E0 5$.&

    Eres una persona adulta ${edad}

    2*.* 3*,%.*# D%) -*0 1OTR A0'-+.%0$% $%0%.*# 9)/3*# ,% %$'4/%$+# ; $%8$* 3&+0* &*

    4/% 5+)F .F# #%0-'&&* + &*# .+4/%$+,*)%# $)+(+J+) -*0 &+# 3F9'0+#=

    8# F+(23*+7, da,('7,

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    135/4

    !!!"#$%&'()*(&$#+#,#"*-.

    135

    R+ #'9/'%0$% %$'4/%$+ '.3)'.% /0+ D+)'+(&% 1OP %0 &+ 3F9'0+C

    2E,'9*j= fC

    ${variable}

    R+ %$'4/%$+ p7*)"+-5q )%-*))% -*&%--'E0 ,% *(J%$*# /('-+,*# %0 /0+ &'#$+ % '.3)'.% #/#

    3)*3'%,+,%#

    2E,'9* j=gC

    ${objeto.propiedad}

    O% %0-+)9+ ,% '.3)'.') /0 (&*4/% ,% '07*).+-'E0 ,%3%0,'%0$% ,% /0+ -*0,'-'E0

    3)%,%$%).'0+,+=

    2E,'9* j=hC

    30}>Eres una persona adulta ${edad}

    W0+ D%< D'#$+# &+# %$'4/%$+# %#%0-'+&%#@ D+.*# + .*,'7'-+) 0/%#$)+# 3F9'0+#=

    M# I%4(5('7. I%,+.7.L(E.%#R,-

    ? -*0$'0/+-'E0 D+.*# + /#+) ,*# %$'4/%$+# p-C7*)"+-5q 3+)+ .*,'7'-+) &+ 3+9'0+ ;

    %&'.'0+) -*.3&%$+.%0$% %& #-)'3$&%$= ? -*0$'0/+-'E0 #% ./%#$)+ %& -E,'9*=

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    136/4

    !"#$%&'(&$") +),)

    136

    2E,'9* j=ZC _I*#$)+)R'()*=J#3`

    seleccionar

    ${categoria}


    ${libro.isbn}${libro.titulo}${libro.categoria}borrareditar

    InsertarLibro

    >%#3/B# ,% )%+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    137/4

    !!!"#$%&'()*(&$#+#,#"*-.

    137

    L'0+&'

  • 5/28/2018 Arquitectura Java Solida - Cecilio Alvarez Caules

    138/4

    !"#$%&'(&$") +),)

    138

    !!!"