Upload
danyer-valencia-llamoca
View
24
Download
0
Tags:
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
!!!"