From 85c8ca11c4b4b2810460868770af4f4951dcf9fd Mon Sep 17 00:00:00 2001 From: amira921 Date: Mon, 21 Aug 2023 07:06:41 +0300 Subject: [PATCH 1/8] task 1 added --- JDBC Tasks/DatabaseTask1/.gitignore | 29 ++++ JDBC Tasks/DatabaseTask1/.idea/.gitignore | 3 + JDBC Tasks/DatabaseTask1/.idea/misc.xml | 6 + JDBC Tasks/DatabaseTask1/.idea/modules.xml | 8 ++ JDBC Tasks/DatabaseTask1/.idea/uiDesigner.xml | 124 ++++++++++++++++++ JDBC Tasks/DatabaseTask1/.idea/vcs.xml | 6 + JDBC Tasks/DatabaseTask1/DatabaseTask1.iml | 20 +++ JDBC Tasks/DatabaseTask1/README.md | 49 +++++++ JDBC Tasks/DatabaseTask1/class diagram.PNG | Bin 0 -> 23882 bytes JDBC Tasks/DatabaseTask1/db.sql | 17 +++ JDBC Tasks/DatabaseTask1/screenshot.PNG | Bin 0 -> 21856 bytes JDBC Tasks/DatabaseTask1/src/DBSingleton.java | 35 +++++ JDBC Tasks/DatabaseTask1/src/Main.java | 8 ++ JDBC Tasks/DatabaseTask2/.gitignore | 29 ++++ JDBC Tasks/DatabaseTask2/.idea/misc.xml | 6 + JDBC Tasks/DatabaseTask2/.idea/modules.xml | 8 ++ JDBC Tasks/DatabaseTask2/.idea/vcs.xml | 6 + JDBC Tasks/DatabaseTask2/.idea/workspace.xml | 39 ++++++ JDBC Tasks/DatabaseTask2/DatabaseTask2.iml | 11 ++ JDBC Tasks/DatabaseTask2/src/Main.java | 5 + README.md | 2 - 21 files changed, 409 insertions(+), 2 deletions(-) create mode 100644 JDBC Tasks/DatabaseTask1/.gitignore create mode 100644 JDBC Tasks/DatabaseTask1/.idea/.gitignore create mode 100644 JDBC Tasks/DatabaseTask1/.idea/misc.xml create mode 100644 JDBC Tasks/DatabaseTask1/.idea/modules.xml create mode 100644 JDBC Tasks/DatabaseTask1/.idea/uiDesigner.xml create mode 100644 JDBC Tasks/DatabaseTask1/.idea/vcs.xml create mode 100644 JDBC Tasks/DatabaseTask1/DatabaseTask1.iml create mode 100644 JDBC Tasks/DatabaseTask1/README.md create mode 100644 JDBC Tasks/DatabaseTask1/class diagram.PNG create mode 100644 JDBC Tasks/DatabaseTask1/db.sql create mode 100644 JDBC Tasks/DatabaseTask1/screenshot.PNG create mode 100644 JDBC Tasks/DatabaseTask1/src/DBSingleton.java create mode 100644 JDBC Tasks/DatabaseTask1/src/Main.java create mode 100644 JDBC Tasks/DatabaseTask2/.gitignore create mode 100644 JDBC Tasks/DatabaseTask2/.idea/misc.xml create mode 100644 JDBC Tasks/DatabaseTask2/.idea/modules.xml create mode 100644 JDBC Tasks/DatabaseTask2/.idea/vcs.xml create mode 100644 JDBC Tasks/DatabaseTask2/.idea/workspace.xml create mode 100644 JDBC Tasks/DatabaseTask2/DatabaseTask2.iml create mode 100644 JDBC Tasks/DatabaseTask2/src/Main.java delete mode 100644 README.md diff --git a/JDBC Tasks/DatabaseTask1/.gitignore b/JDBC Tasks/DatabaseTask1/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/.idea/.gitignore b/JDBC Tasks/DatabaseTask1/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/JDBC Tasks/DatabaseTask1/.idea/misc.xml b/JDBC Tasks/DatabaseTask1/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/.idea/modules.xml b/JDBC Tasks/DatabaseTask1/.idea/modules.xml new file mode 100644 index 0000000..30f5d29 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/.idea/uiDesigner.xml b/JDBC Tasks/DatabaseTask1/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/.idea/vcs.xml b/JDBC Tasks/DatabaseTask1/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/DatabaseTask1.iml b/JDBC Tasks/DatabaseTask1/DatabaseTask1.iml new file mode 100644 index 0000000..18369ec --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/DatabaseTask1.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md new file mode 100644 index 0000000..69211a7 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -0,0 +1,49 @@ +# JDBC Tasks + +## Task 1 + + Java application for connect to a database on MySQL Server and execute a query which selects numbers of fields from a table and print it with any specific format, by using load a specific driver and get the connection using DriverManager class. + +
+ +## Project Description + +### Database Setup +1. Install Xampp. +2. Start Apache and MYSQL modules. +3. Open phpMyAdmin. +4. Create a new database +5. Import [db file](). +
+ +#### SQL Code in db file +``` +CREATE TABLE `classroom` ( + `Id` int(50) NOT NULL AUTO_INCREMENT, + `Name` varchar(100) NOT NULL, + `GPA` double NOT NULL, + `Gender` enum('F','M') NOT NULL, + PRIMARY KEY(`Id`) +); + +INSERT INTO `classroom` (`Id`, `Name`, `GPA`, `Gender`) VALUES +(NULL, 'Amira Taha Ahmed', 4.00, 'F'), +(NULL, 'Ahmed Taha Ahmed', 3.03, 'M'), +(NULL, 'Mai Ali Mohammed', 3.99, 'F'), +(NULL, 'Nour Mohammed Ali', 2.78, 'M'); +``` +
+ +6. Install [MYSQL driver](https://static.javatpoint.com/src/jdbc/mysql-connector.jar). +7. Add driver in project dependencies. + + +## Java Application +Singleton pattern used for database class. +Singleton class created for database that has only one instance and provides a global point of access to it, it Saves memory because object is not created at each request, only single instance is reused again and again. + +**UML diagram** +
+ + + diff --git a/JDBC Tasks/DatabaseTask1/class diagram.PNG b/JDBC Tasks/DatabaseTask1/class diagram.PNG new file mode 100644 index 0000000000000000000000000000000000000000..96056afe9f14d74cd1136a1e5fc4f1f65ab8778a GIT binary patch literal 23882 zcmeFYcT`i|-!F)w6zL#MdI#xUx-=1KR-}h2BE5qI5NQDfq$5>OK$PBV5D2}4)Bu6d zlpaC}5Xc;SeskaV&U@eY-kCLP{<)L2vREhVWS_J5+28$XC+e}j7TK*kxA5@r$h047 zJjKJi1_ItlA_CwOgXNLCz@KZLPqozW%7&T$00%ehRrOTy@G9d;uvRyLV`8_5#-4b1 z|k38>gWs&^>a;@_@FS_#VaGfT4`m<2lEn zx229{jjz^mo@zuK!*bLhj<8<5sB%g*+jp>+L>v2P?2!<82ZhCTgMzJtHZP@hEB2Z6TTf6v0A+2kPdu~u&XSSlh#FMsE&pG7z=$B^; zKLfNH2zix|>uoi?L+R26|1_qzc-yt0upK08i!nMmp7V~nRri4|W-mARa&5QKwI*OI z`y`Q>BkUW?gZRMF)@GN$s!6bk5R|J&*NaIR%Rfu42AQ*&`R%^jsh62lx<1B<3f#LO zb2%H7>r16n`^DQ6$L4!N&X(jP9Zwgvx9u<5ltwSCT^B}~@AGGNL*}G2k1eUR-ys2` zjQUmWf=+e*`!$hgTZe8F>!p2$Yc&tSS}OaNF&E5gL}MARi&-B5myeVJhJxz;;OXHf z&kGR8FfTRe$t30Hpn-R)T{Zp#e0@0)gV}AL^F7vHPyBg%5|0-3bl$qWxzF<%^;5h78IeLD_p*;blXd8mm6r6&t@nahgv?9xwC!U1 zjWVSmgbFUe{|OiYK3}jcr<{y}y?idMuBE)xbr_L(){GW$*}x$xJ$|`)8P~XvLgE_k)Cge^M7# z$`?YZ$AO}K5gR4?J^+h}%HKPAEFpyMx*2mJBl7M7#KIq)=iLy9-tpB;yXG0gVANuG z97>j%IDdeImrj@NmbYC#I=<&SQR+)~!m+9LJo;)Jd7;w?zZk@>Z;xf0^X_$cxAgwn zWqGt3!vh7ZF<&ZMV9VqX*d^!*WGGzq?NKeQcApn2FmNryde+`vC3lrBT_(`S9Wmvc z%hRZqtc4W(euqT5`8Yy3hzW5Q?v)Xqx-Y5~C*`J)j>);_KkmI}zE7O?2on}7g|ef) zE*P`L6&5E8uebWLS@(@Os{Gp$KncGM}gXRFR(#ie;0qzZ~caWRiK4^X3V#ke^H%W$jH)pXhs-jU~30nA78? zImvu>W=(IaZMkg)oPV~?IgMIw*D9n#)3-cjLjkk;V^Juz3&%tqeO@?ZnrOz+&viA- z#?b7hV_lEUmAArHWStudzVzt91D1P!8se^Sdj;@f+=y=@TGRnFNMZAK0(KHR=}JEk zVJM-9oq5(3cyJoM4pfh;$+EKUE?YRF6XAH>eaxZ|bL!wiC}h_!NxhrUQ`D$4XR(7O zrr~wY@ZbH9C6yXklNuBL0d>;$l3YU`7M*BiOmhG1kP4Wc>n zgV&C{FM7*e0C-J$Y`S^-HnN0KBF(sR|K|nwzwGrt*6082nr}P@N5+H^nXU z^6>B!Wa#@YN^Z|b?X`AxH(c|j@V4RAHGKN?>GwascDha1d??i*p0VKn7bpLJG!6D4 zvz{O?5_(a+I+NkCFFo_Xp0Pm4B-5BiC*qCG2Dc!}OXtebmUJZTP3uZEeQr6zzg{2kxI@ZSp$$7voPR5U2mRh-zvaV~z zvv|^*&9yJcFXeC-9liTOfC>!0=)O8-yuw6!|0@);AG#% z!2epn@3CUdA5IGZYFHI8Xu9T$*vLtj>10s|n%{`Ty8YIY-8fB~-yd7Ks2WLzS9zOO z)#uD?G+V7`U7nwou_*X9J4oiB5t47VxleYRj@!ySXYePx&Pdgi}IviZ`3W@k6JupB^j@Jy@QNpzB41!~**h})pY_QFYlXw0Z= zS7^NM(VCw&%*|zcCH!VE78Tj-i($x>b=xPxNi3b^__{0jYDSjrj>fB;dVE|*2VQoC zE0=E!)i?L#W-LF54;Td{CD`zufq_~|`{ogtkc?&R@>WT6=Gnp;nraCVjN|I_)^tBz zhwovJfuo%{Gw*Er$;W2;S@-^kxJ=BNFJ5MF7u^>??fj}OQUGH%xThPGx@qPJY6)60;)QMAB-vkWF4&*{jKgPY0%N1OjzDDeG;;@N7@x`>2hQMp2CON@?xh zDOlqdq>H}3&!4{5yVa%fOGrvADBa^LMw45^v0$@{9z{gcG1a`gOopCnsg)7PCf74# z-Hv4o%v!xI_Qb4mbBMbLFKEq(DClwxa&C>dwEdBj$Hlg9N5OI?-sd0$HS$Z&b71lG zk90IY7m?*Q9d50&P7!ThN*T|4Q%@mew80mAA>AhzC~q;*+4fNF33jI*(PHGY>eVf?DwxFJ3B9ES(*Ya@wkiLObFV*J7aNtcDId1Eha2*ueFV%k1F5$*%5L8-&lm> zou0V0t}0ml2Q8(`0je`X$hfX!qpk96hr8&fYa4D?#(8n`BAFN4AjsdmH&CAVG`4FR zTf^q+u+0W73}8bvzDnPtQSlad{r%bck8%obxuTK5jay>`d0QcAcl<>~jJE3yvgOz6 z&lkjJTzh78b_XuP9jRieRM*(JbykQD5sGLye%grHvc&bmS!I=XAxjKM*eh~!HWCfX#A7dFj$Hi{rQLYnUH z+~I|~mYZ+XPnVtlbY0nmuO0B2BCiv-^HjmMhJni1R(3aV|3KuWexWcGtn*mMsn33;kPQoFT3YCkK`* zouuL@vTzz*@Q{`hvQfUP-Yg2fT>PgR{3*Nnm|O1XaoiIp0y-Hx5XiVGX%IU|*oNci zlarj;>ppr1O2zr37+P8`J)ba5x4vxSF5>Vdy|b=jvzz_YB~of@N|`Arm$LLz1|8E5*uC=E=>1hDO}|lM$T7 z?j;sI!o4wQIkk%+WIN*U)p!9by;)*0EP5&g#JW=NY|!`@{%c>`bWr?r)5 zsD!7fHlMoaW6Dn@C*CTn#4b#IS=qfm}c z`~E{YUQtz8ayx&6yGN}9%#N{Z#JebOnim! zobbFSmz+=TW`C6HZ(qCTbopA!#ag-W`DsEZ>PvkY6k0zbnc&C`?Ss_nW!3`|V0k+3 zK>yzL6A`3_%KjCjitJt&uq_Ewfo>#>e6+^ZwZEeY%1z-i_w(1P_c$`uj=Elnx!%+A zXG$R^cg0ttJT!dfQ?5B=N?#AM_v!s(!LT#ka}ygnVgDhLCngPy2?V&Z>PL);nLMP& zmJmsNZp=Wf1Nk7R(s5+*7ySpy+IO(}TdE%`gcQ6Q+bK4row)CaP;h8K6EKDXx=c}{ zb7B_YRv10V+u7h`t9+_AG&ZoC=o2!E%|3fo}u$dlFf(keE1*w$<=J}s{ zHlJ9)U)3N}A^#;e{(pqM0Q{2ccV=9Fx>EWt4w{?uNBNQQbS1MeHDY7Eb=AV8f%`Av zE$Gp^h!M<@jRYud(}~LA4@n{p4PnnijJvECY{vG7KR{Zoe$8m_UK}wc2?Oj|DIyO1 z)A>!vz%_t73&l#>Vi@YrhJ63UtmCqOPX+E<{ll!gzr-7O0vMhtHlqX z)!ObuED6cN=e#fTOI9b%wR^3(-z*32Iitc|+s+rAXD|t-by%``zdu`#9&K>zfic>$ zp2H-?=gG;#58m1w!CiVbn&(~HE^@ws2IRPqf*N$Ad!PM06JBydIqP3n#P>>4gAz=E zgAo9oy8tv<5uhH8nn=Ne53rZ3bW!F1e}n)1#(@baqE~CPDB1ybL9-CB=gRMrEAM?* zKtSW@>h`eu-Ag#H`O?b+z)x~YlRNO^KgVBdC?{iqp^C82$zHia$GdDBpwtWzhlyDh z>}BMC`!|4Gnsnek+O!tqWUc2sJmKGhfV=Od*Y9zq7k)T&n~ck)PE6ucwdX3pjVV~D z8^}9(%dVqubh*?OhWEHG%-W$gIi%P3MbB$)0~Py_mjA zlpuPws;~fF-$fM_@|miwk^rYA>z^UK{K#J2Yo-B-4 zUfd*SyOetZomi>qIsx>Qg)6{&>ASea8i;g|ebr%m#i|TH73v2}d2f0DV3PJpgtuHdmAMt}3)XFdhFWnXBXvNc3{$ri(lq zFXx)KrkWY6*H66wq5ur6Nd)ZWZPn*4jAGwZn*w?tBE;YAV~@}GwEH5!brY-qz>DhL?k zjnz)_Gc@^^G06TIL!JOqTrefOVA$u)=7j`nzc6oKr&jMR#54YB@yMWlU z3P^_0$O8a^w>0QwqOt%@t_)ts;t|1$yDWjd0H0 zdFVmHtmHGe;4}RZc^ME9r++MU8>FESJD^}@D&%=E4N5Y5Iq2v)>8-7=WE2IgsZEz% zl~E;e=LdOG?>pTnjCvapI9)PDxXTtZq1`s_^>FKP2V&eHdy4% zN_}qTiS^TbywYfZV554Lx_;q?+k>9c4NI<`vyq>UBq<{r;TJD_OH<3ub|OA7Y!Og2 zBU<+l1eFb*ivpMURRDGK2CO_JHTjAPfrEGeU{u8x?81L5Zy;pl`StfUxx|4`OiUkB z5blPo`+-fDL~2K^JCtxh}Yt28v*L;phs*C`b11^ik#fPxZme zsG?W52ZT&o1~kCvTk0F>E%<*Ay3?50Jd!JenECIr;RK9pWf4yEM1`MeU`T|5xbLU|U?aIbZ|*o{dJjs4;`E1c-yH+aQc@i_M#r>`2kJlJ$r&gpmqtVDDLnRC z&Y_voC*jtYZK5sX7g!y1WO=kFP^xa{^}V5R5kLh3yMLF&`Yoca`sZr*Uk$pnnC$x! zwwY*{+i)C?j4Bt{7>2UHr68c-lkTa3Uc`{ObiMiOZf;l4=L?73e0s0L0kUPJeen-vb|sjprR zsICH43%LF?0Cu4lyOx!ToP+?^%S)%19ceo|yYCMA4cDgu3HcAG+seu6yfR+d6?+ur zdM>ZC5Qm1lw(&IH#O&0?r(O#~>csHaPG+3ZuU-iNjrns|Yv1adu>h)IrN4iM)H@H8 zdT>hJ<7l_8hRe7;$C@uUc(vii-tD#F6AKP}!a(uvUF?V3C z@)iR(D%1I=M*);3Wyi3L#+ZEYT`Gi9zzOZZC@f;qduoFvG@?-^yX>UrA--&QAbAY= zqp0#O&XYgEFB6}!dnr(Ql9KLLv@|F#+ts=D?pJENG+{VhQnhN-85Z7CIZz*qW z18^DqL2`+LqFjk3nX-u!VnA-(QgdmflUA!%YpM;@7fS)ceIMVgFr=x7_l|qD zFFu2TUin_d-4sgM5;4aGoAbKifS);P_3txP@#iIKyI$S!0IpER*o;ior%4&n-+V z@AlD7UhRDjZ(Ini?Hm>(rZUEoG1iR|c<-o8VK<9Pjr7b!vu$~EtgNe8g!VsrAOpi*8o?J6Gv4CrtY@brz@lzeJ7ZbuIw}^p64Gi)Z-4!@PMF;?*Vv zVoTSbtYZiCQ z`Af*_ZbmQCh6OizTSYK)O*~7MS&kR>NdqbPCc~S}X`jW`s)w#KnK*nU++-O?qG2oU%dKoqE;s+~H;IKN0p2tf8fDWly z#bZK3jkse4n37jWc^!&dew_HM6?}*?^abopvhgeElUzK~07yEXMf%x~9?3*_pzO6z zNLh9OLJDJ%^NH(M^JEjGY4x9ng11ya{-_>{L#g0B$J zRmUz(N5i%{HFVt2(vLkkS-S-DfuO1vcnSA^SyL51s2HcpIyQIVkLE+75jya5EL!Bv z79e1XO>VaAAH?md(APS!w*%YuVnf& zI3f8_4;QY9HINC6xGaYrPot+nI&DP5x52nSkUeju^QKc#;YW2Ewd^S8@WW;sH!jo= z4KGxxUj6d&+_gSngx=!uECO&egE%@UVO1BC3rVGKG22&)PVN_4$}2xoIrpXo?tAq+ z^-IhOg{-Y#-sDdmVG_)4YP9GE4iJJwP^D@n1(<`+&a+KJ3!aGAxX+6U;16&By;s$9 zNJ;OpoqXI1-e}#Ox^~j=Z;G_j4CcugsL5u-Mb^37(_-Gw2w`5YEbzke%5gK!I5~%6 z`;`>V{SmiWW!_|&LOr~ne&>LY4Ov(Js%Qe#dhS{H$J}5!WW0kNeM{A^i_?wVAjFkY zg9rrt1oNUYr3)N0)1yQ<5JGWF&F^W}DpE4)2ScZH$@t^iuD z4$qX7AyWWy{uo5{#qtNc9g5MKUD8MefbWj zQc~`K9FWeH#M!xKdm>79k;>u#N9oghi*d*KZwmG-0PwhKx)H#t%?=ax&F7nC9Jy`i z94i;VRk_2APbXrrNz+n$tQ5R+x)_zj=J+d`GG$^DmKGiQaZGBh9efy7WWKTW_ViYR z-=Bl8&)YfgC--SF=K?N7n#vy12kOut`i4Csx$~qaR0$C1!3A}N+f7GoygbXQ;#lZ=KUI&50U$R4t)EO~to|&oi$0k#9xWcsp8D zXW0A3J6LZtEG3ocH@fP1TP8 zyry$~atDh5luZkb!CT8MDF5S@Q=gObyeNxS^olOY`-+wGr#XbY%89GL+Ip?)@zr#U%XE4hv~N!9`sEgLd8v&j zk}gPi<^=bp6&&$o82q3HWmpqE%KTC0c(@O4vC9lj-?3_J>8#z&7nGN#l)&HG!|Ke@ z3*IqgO>x@A-V9O*Td}NU01DNR_1j;>w6u#iXa^uwj))(@qohIx$IHssU@1EQy;!Ly z6S^Oi7S8$NF4RCTcdcH1Spt*2Eh($rYIJxE=kUpr^alx6g4>6a=!>mbY#pM|@#c34 zcHjRf-!m5)h>1H7cXa5hqK(Z!R$@58PKX)bcL;KSz{3k-n-Vu-(MES3c)SAfFF8db zx4OhA(I1yj4ECpg&NDk8V{}4WYUoJl#Lv}2-|um`jw}Xh>t9nKFS|Pi{%!%LiV^E# z5#q?*o8J+{A1W;T9HlRp;pFf*WY+akD8tr?Ye`&6-2XAzJXx}N<5?+p5i2-gTT-xo z&)N6fxua;mD56iuvm~p+$*H#M`CaHS69pKZjUaDdXjc{r!fbB6$HaYa4i;DZwM~-Q zSEN&b%;dEuqR?|tX5xh+;DMkYd=AL-;pV+_MWJb_*DPTK zH-!m=4rV^f0il}9dkyRw=;AjhP5y>Pt7rvQwco@=q^%Qrsyzg2k6zpX=WfTB4r7KW zqy#Dx$ucaHYYByKsM_Y9_U;!{Eq-~d&M?HBj8{Z{;fETG9Kw%3hqFVyTo@1UJxk5m zW}pF~D@`J4DW1zws`cjx3{1lmcbXmESI6^HR-~mEcW}(p950tEK6}myZMar3%&#RC zp-TApif)<4inIB9c67fMa5uwtOl8G)O=OQZu@k70kV;syjNCogAhFeQ2@;eT?@q^1Pk9x7(*P4!=ab@ds`W>S(#hw3slL_F zqY<{$@%mPEdfUbBXM_k36k`7&s(j&#vFG~v4(*S{LpX=mo65af+M_XEr%cRKU(tq| z(E9z(;qs>d-|dc9KK5sz6+h(IcN)DbNeSZAvDO9u`ARcXG#Mp2b%&Po*v`ar7>ZEy z+_#Ug)Eu+X3zyUd?<^CyZ|D$aSHA9ZggVVQN$sCnD=`kFwk;3DWsi!H68pXOdtLhM zW*VWLdsJ9OZq93KmyoIJYnZZ+MqoWl;YXY>0@|5@ZkX)0rmQY_0=q0+U{(_vMGrMU zS9-!RhH1Bcvil^pNQJZ?kO@0G zju-egEKGm)j3bGC+5;Hd-t_Q&c9lHl#iXy+CtQ`j(=$blN9O+Wg_8A z`4ouyO!)IabDNX~Q8VU5w?ipIk7|6{xO1*eB!w^8fieAg@_P5W4(Vb=95cSv`m$}C zG@A|TrbfzE$Nt2A`eAw`hu=CEAA?FaEG^-Q-dLh4okP^9vPDE?mt*?lh^Vcoj}wC; zFK`tuE9du-1+nZj+B8oeffJjQ) zI;JQ(YnE>A>cQgBhKEQSOR(k7Ft?mv2@KWXQrG)Z@rDA>cXp8l(LdNrwGcnA=T9>V zMz-k7$m} zqgLn7iHV6%^@@h47x?Q#Db=zZSJD61=}r zdr5fZj9kT!&vvd1^UJ{H6ql{K5o{f0X$WAY0J7TF&7#0Grf6go=E^fs#ekAOwzPaXAJKHaL*$Bp6Z&&3RbQ#u(0Sa8r%ib82T`-ZfM(<}3aHV)UD@vaVvEOa zy*+f^4?J%>n``3^x~M&jS<-Dk$&JHUOjnm@;>PoBx8~h!5ZB6vUQE-1l7n#<^;P=FzE-eH=_uuzl#!Vl(MN;6hwuRpr)wMMRRK1|cWx*|d zx%5j)cQ#hm{bzD|C+60d?i7~Kxu?)#&?+Zev*QjGDq#9{Z=0D~Fe zkc+vJ!ciZ+w^R;Kt2dxmW|8Zg2Vk-r2g^M<2X+y$chXkr`2TxGcYh)s`!_On=e->k z`M%3#fG?L`wSnFS-B=-It%R9Y_g~c~}PUqN`dtN2D zCkjV=PA1LOm4i2wI_H}xWTfs92${9~;`4Ld3Amg?x6<&bOnsxhX4Fu_9)!Dy2hd{4 zehl2pWwo1%Gaeu!=H?H;*J5@Lj;Apmc}MVM45wnUtjbr^VfDx<7~7CSeGdL(X3Zq7 zKEKDJ+-=(5AlS<$8B`@|KbWpGvf&GOT>$`XT!4tvv}D>%&C`P~ze~IF@i4`RislCS zk{+L8vt?G~M6;X_ZqI_RLgj&SH_&rTXBe!$dBEF*px}!KZF@kfrCDU*ZSxg7#O?AG z4!K?B(9&9MM#T_M#hR|7s%rsFC%YTw5?JMa3qRu?f}q243h)XV5D6Y9PEejNwD^Vf zDoER(-XXfPwrFH7`W(R7H;)~%?{Rt=nV&t*eAWw#AjX) zLN`L9;(;KCXw}TlyV0kqThtORPur!@XZ_OJ`t2qKGzU574`kg22K_I2KtAn)H-9i( zWe3rVKtLTx)F}Au9-mj{gac>naM}UbXW+&wLvQsqEUl#`?C61(@tp<|AUEP$DU=n zlKApYdM1}1*xliytl!MVmEQ#0ZVq@Dxb^PeD911+vXEOYe2ALe7>;8A#fLfI&Jk^89kfqIek%Xk>^C5JNJQz%U{SdG-lM)NMe6JFHJ0Ah} z4|QJBXTVq|>*NGx8A{W8nB86%wbusg zL!%axM^1`5BNvWj7m+H@zIzH2=zJXJQ4SRa@^jPJK1{p~hGn~2mEhk)d^1r3xX%zd z%h{M~nhu-m?D{|v0Gcfi=tRwPR;9i^n`T<@r?1zkyES#s%0}GBRh=ZGYT16`{@_3g z6(_|N=%45dWh<Fd_PLeOR(`ivznegL%3c}re__K0?(ZPULLE)PR(-Y&!9pYo9x3K8+waQoVRMADU@ z-{O03`R?kLWl(Tpbg9z z=Ij^uF|!|x(Jdrj1O}}ykDEh-nt_F#BhCxG0_{yx0=3qYnE+ST7d{4pe=iaz9)sOu z&Dp4`{uH6tlk#I~mIp+%__y6i*bk2zA8%Wuc&Oj)Jcf`$a|6R_ zuF(mm^7zNANOzvUcfSdM)0+DX-@APHp<&;%gS7+LP(Sg=!LtyR4g+JPJDGxLgi&yX zRT9oz4Bgm4@}ZqJQ^wW3jad#^8eArLxiFeCfnJ9{3#@r{8ewHKRb^DOS_>2aFZn8! zAtf%2#n;|QN4>Qg4FfrRM(dbqu{=^5Lsm6?$>v{;HVd2*DElZ^&5tUGM!+=xoQ#p! z6zqoi4os=>F^EYFLgUlA%tIpseBX8LM;P9N=V7kfRl;WNiG5>YHAvc{Yb9QNLSO%> zNzH~IETrC`e$OC+zbAc-iTvAVZ&izJatSAx`Mq&{NXz&pOjd^|L5;ieZRLN!ipqDt z2oNQGVII1ql-Cf}C98kP6SV3<`S!tvEtZMl@%z2>*MuA<_|%B3_7(ydRnM0ex9}y9 zorYPC)w`P_2{T2`3Cwf^d>V@hn03nk6Gz?>8@#tS^OO1k`E?gMY+u1Tn36O8A=r~> zmsAK5e3Pc0rr^mN{jiph^Y^{f*ipdYM|0g^oTO`33IpO!2xia28F2)uC~ZcHJtX~S zKH{bQ(LoxyJckL*fBvk(3w-gxtK@h5Q(F&qx`7WH@!xomwU@)Z;E^BYr4Q?1jrWlO zbe25C5r^L;WaF>$vJ;vT=b50KKS-Y->5tXdsBV)oQCuY+u!DREJfgl1Y$n;GuvAitM?^?s^(Gj1hJ8Mxq6r!KZd4z%@4r_G_1@e5tOXl zcO@tEa-7pm(cIrm~PsvS#9q?EMdsd(_oUJk3AT8iYMDx37J zTRJz;0!MX`+qcoI^<`t`N~|XFLa(KB2A1?-SiUXPl=R5&d9PsHfC#&qz14VRWWqdyvc*sGJJMn!1&eGAd8)xejYw z*i%EB3y=e+lKzRXdjC~@Fx;z2*?ST0L0K~r+O94QD8|uW+F$c_KVvu;t$vE1|G>Xc z|7%vM#x*1Ectz!*mnQxDlyJ8hDOACqhm4mJ31l=)HWxJ*Sd}EmLTsE$AE!2-aJwM^oxKRgWEizRour-0UOZ-%bGemlrm$ejY4Dh@)i>#7B0o$&{y*3cPoP`@0<#o)q5mUgYZLY zq)`mREC7oOAwE9URa`#5!pYdDI*+XwpKa8E4;&IFW;O<#z)sIb{Qd!XuilPU1l^ej zt*fvC5fj`jJ_5W|M7tJTNG*M@-UwVA`s>+lr4nHbov334yHLc(AsMaK<%Z=F&%x(C zy6;OUdN+y(wv=Z^Uq3N^^{d+Wh=FsYb|av;&0R3R_Aw1o2Te8*{et;H+^65+ABbQ7 z95W61lyG!C4=PdME9kyy=vEkM-5?5Zx`!59-??wow7=Z|-xy?w7Qk z;f;`O7}kB1%R4BuCwjT$AvRv_=CWpbUFL{?y6$$%&u?tWB&CQ#*!0wjI;DF0w;U`+ zURrY-y_QoQo6fO2h}Wa^(_Hm39hDR)7wRA1XU}^thjEknsDIb0ftwzvbO#4{FEo{d zi*t$i;3fJ8|KQ4r%{ve9jz;MMx_T`qT?^l=H3QzomxhOT2~>?JK7Glk0#gXHZ}POo zS1~XYV1N4;0s-xkIJaH=LUj#Asuy=ZSatNlR+r(Q2s6n)SIG6 zY`XBb#&4tcS;KcSU_$GK)(s;FgQrL&GUE48Wx z+YxYIsfO0zn*jkZICJx(HFTZmue%3IHD5^s61rRn!&0lv(kMx<_eTnr?F)?)_dPYr zGmUsrB>-gpyFK+bvcJ=VSmVS{bgRHK1>+e%2&PCAX>fdW3P3QM|bB z+Cw|FhCCi5lSqoo%$(zK_N!0HGzm|UF_ioJJvtQ=H;y)FOK!BkVOSl?Ze#B&Cd`99 zmH7QU-$`-gdg-;YkW-}b?Ie!|acd{q53W$*8g?V%(489TWm1|v$ysa(?BHe@$y!dZ zyH(;dO3=YL^%RqEsgxUi1vW9Iz_T0(Rky_0U&-zkB7bG~NMY&F7msHmy-6FYu7L1? zgw4Ox+$l+E%0e3D#$nT`-M3yA$y7jQ>7g^Fw0#}dIeeINTBjaN#)#5G&E9<1j&@C! za7d*c3OMFy_{o%0FDi1YWcc1ET3gqHb%nTI+*COD*XuYq?(3SlCQ~CC)~?Br71c&N zDJf22W5hu+9Nq+QUTB>mt4L){00ftM@oJ$c%C!X-Pc zW)+xOMEZIY%eRL4mWC6?3d&jgAxj~Xx&fXky-?uV^gIrJA4ca9_dwl zC5I(H90FWd@it~{#{SZh8Y*?5hLRTlAWZ&QKu0RF9al1D7+15Fj@0NOo4Mmx0J~K( zA#6sC^D2H09ul?@p#`M(fm_UVCf>!vwG2Y4@@W`S=wmKA5SnkrFnZayVq~*$ve=-G z*07blGWErbwJjWW@)&vRZrXNuHZRl%WDF7`<2351y{PD(*i1deP6+*Onb_<~TQqmE zn1P8KVG;tBwlae5Ytg|ASWD8cu0!zvVjo*c$Wz)Fy_ZrbO2K32mN(Ox&I@gM{0%0> zSm}h!ap;$&L^Q1{`}+)1!st;lMqkLRgb9Nj;*5uji2sVg)_G|isb>_zwG#!@sI@t( z>?a~-w{K6=vqTmcK|N}5x>q9ntecsM;$IOSyYD~($-vB^?NUWk-+U;&MGYOCkwJC& z4*wgNKLq^+^Yk`(<{K`3hDyB9hAI=LQVZ}Or=@jwPa8ka^GAl$^OA0I>~5&nU!+Vp zp|4Qkfap%)At1yZ^O_9sAOdE;HgaNIj>C}y{llvT!jGab5u7%yBf4&^??Ks-^Xs&A zT}tj-$({13itb147lng$227^z!oWpHkHym;3h_bfZdD71hl%Dkz5B}wUWKs%+Z;@? z8#Y~*P`Xk7mk_|t7#KR7E1Z!rj$ys*Lf8uQkJ}DN$Lul(D0q`Zgn*NoG{@jyg1e)0 z&0EyX#U&{?)ep+8i=sZ8rARK(A!;ruVeq>We3D?(hZ&f0W^U1v&k;(tM#y)9?4(MP z`-D%2@8&mZ6P-&8W>6?lT^s0^59l~T0FrtbS+3|*nH7>v7FRm)VOWYiCv8W{imULB z3Ofb6(X%-Veg`8$3m$6=fxmR4;*jdy$HIB?U*hsGObIdD6YiE#svS4GKa>ZjqzR%m z7M~L^yx9g0M+n$-2WJ1MilsbU>%S2W78klXNJaP3G5fFa3bFnQm+HA&P}j|@1;@_* zXCtw!-lYa*jvr3Je;zwI15k#FxTJaA(z=(daMl1qmXavl-b*3KLUE6R**ew_iR;L( zE;Qjcn{teSU+1V>T#-UalZcjf4hew_3-JO39xqq$N0}^HRW%HZ;vfb3lDP;C8dgYV z0kfVms|>3I6GT;+jxO(^(aF@Ol&R&2HJxvXs#>Ia>Lr{(gl&w16fxnCqryGSAGSc;3_ihcBv{jKGHATF z&8^m05DS*2x|Rp;0)OUKtDw9)e}5hnwx~=WZ7u}Gtj+4vaQ-{;qfxVe&_nyPbz{Dl zLS1y0JQshHP&sJ+<-9CFeA;T&)K-2D$Gm1R37rzPN)Tqa-tt+TRLr8Gtf5=&C3$JV zUrnA#*|#)&KFU=muUOB{nt_`_K0nkomWhcFHlf|#IjpP`W?pbKZ^EuXOch=TqyHh+ z%_`yO!ujwp!uKIIHkER86p42u7ts~u*v;W{yp*sHpWC2RA1Ja$Q=)=RxUZ#(B3a)% zhJ~>DkWvdrHgv}6w~3WRhyApa?&7M17+MA2D-S`P4le{DLgSO`!5Li8sptAS^NyQZ zPN+M)$yUgl@BeD{J(Vs)JT$zVPL#Gmjt>P;JZ18KDb`sUf1dwwV2jXI$fFrwC_=WT zW0t&&oC7q7jdT*ykb75vJLR&KHF|$OKgKzRy zPnD&>tYuVSS3F3N_%A~<`OFKW7mOU{bWCK#h!lrOiURLVrTWx-TTZmn}lp zLv*4pV;UNVbv~uCiSQ%{OLIV58mWxs7x&W+2)b3G_o#8-dRc{Rz#*9C*h^pX<52mG zsxwW8k_l4Tcg8uefy5q&&fl-S^Ntxwj@HUwiPZK%@+S6@qf=-`9JvP4uj$l~UO5Fd ztR;&RRCj!8qPD*=qHcoqFj?t!duHde8g_23`+MUimHxM2e^hUijS1033V#pHxFT}j zfE?6+l-O+v@(ex0w>>d5+i>b=7B5SGF3-9fNsy8Dof4Ez(b zpW9|;Xg?DzUU5zpv&U79mYVSX7WIgDXDQd~Nj$SZsbGt*DjbJKH&;$%q;XopNeU?E zJ}~s>p*In$Cy`j#pfuZzuOggJC@@AL>d zv2B3Un|#|Kf4EWHUKD-k;q*!?M%b1hWbdq{gLi6j-mB{%_H6hBDf{n{tOuE&(l{(;!w|4jBgYW=sDRMf{&ZncGrV_>YQ`4)Li|6y z5(h~iWWOS)l0t17gD@Fi=_!tLUPj;x4?g zY8Sp0=4nafM)ajHeIRY+V0?K-x4btw%Se%kVLD<&!WSP`{gH3K0;Oc76EQ5RK`r=+ zFr)ZBm2Q8ypc~%F4MCcOpXI~bUh5!xR_omY)RaQ_Qr0XRR(Y85Q#-O(92oe3;!m)(nv0JuWul#@vXD7avfRb>)f->+n=!nWk70!r7g_w zK?CAYN6e0ABwbIZ|1?a@N^t_>kxS`yBlCRdqPAGuSTf=5z=mwNFTY-_XjnLTd(@HatU+ z--JJ9W8<<~mIG}cE2Yrf`g@|&y|}3#*3^!7WoUnip)`MY&d#M*WS})Z0(q)9Dih`g zbwBsVi}LR)Abv#t0^xK5h9uWRAtp%~BNHJE1|OV%Y)7EEJrUOR>OxR3VUNw_wA-25 zZm98-ytd?ko>TVw92g@3rY3qPX;M>n*$Co|SvC>O4D&!5@jJgiQocwLlApnUwkN*kgJ7GM$`v+dUO6L!8Hv{}!P>T>wnEd7OeDaFA$O`B} z$Xv(8M9spbBbZ?L8Fkd}mE4vS6<#rl#k-K|sS4e`EA#aQ_g!v(haWs?`0eY}4nqN^ zDm%b4)EH+PP&KFe;92K59+24o%pk;djIzX6I&hNQa3oE*zFqD8d;4rGfkAyj%&Qql zqzEPnD0jY~Ce8eyoE5-$?S2;0?r7)UGBVaEdcOH-ddmON%9(~k_5Xd`lAR2)?_`M? zW8borHAD-|&z4zaBKuZE*1<>-Wo8&l_!)`GJ|RmOyFnCE*-46@C5(vw>Hhy8+}C|y z_p|%yd2+tjIp1@g@8|P*yiHt+rcswAS? z{MOApID;`P0lIrRH~f2f;5gP1-buoJrbZrRaT6`p9-jU89@K1X6`A!Zx-v*&Z?|=Q z<7}Bn^rE0u1iG)6bC~M}w9S1qB$X6!uCn%T9Z45W?1PCz8nNI8OGK2XY!63KiP5pa zp93@YA5qtKCx=qRx4$8B?7EB;dlv6bJVmCA%#EBVA@kxWn{s6Kz4=9!+&sU}TgrjyB`V zQ;!m^@4q_dXCobYJ85bJ}wGf#x?%{Vd9MuKSdAYWJwR)Ii&b$>?^NZ+#w9u6hwZZ)JpFl@vJ z6O6aoMo3w$&Xt~-*~$agQt8tnUwyulKDKf`$i@cd>ICj9L_hb5DGR40A#7f2FAcdn z*C;<@#tVPV6$-Fs<3B`IXcfpv0#WjW9tEl{ge3A^Li^-3MD@K>tuWWZu&!*_G64Am zf2+3d4HRo}{}?!NejzPNsi)u#uJN$8_(NJ1q_kjy%U|{Pw0VDG*WL1LAI~wW@Tz`M zs+(FKmV{jWT5>)6S3p$bP2Cx|utPk&&Y3$I-Q#+ZmNdaoc*Ttis>p3#x2Y|3=dp$` zjtobKe+18iDx@bgYn$^XRDc#^oseJfNc}F0Cn2}?y#W>2;EF4yZA6EFJt8z8e`8vu z7iQXtyVd{{os-dUADUyuC1(h$8XNefEtmlGJ8nF|Nhii;I&d1kk2|eXIa@yp6|i{| zvocw~+z(JPJ+AvU)0NxH+Iv#d~JK%!* z>7qC6dYmS!A_B9xnRc-E?gAHB+T!UGsgEGH;{0mSE~#XNL9t{fM#)QP2!lE1oVZ@c zs={kQx31E+=K8n?uT#mp8~kg6orxGz!c__JYUF}=N=*EX`zCCPZ9Y)uv>UpGCC1#9 zx5W29d!`1jLka}i<#^4&aYs^SBW9`vY}hDa{xs;kgJ0Rf&D3x-TqH7%o;#>amD(JY z4#PdPRnbM@Hm*{P`_~^x7tY8fUr)7aRZI_HzaoKRT&wcPZ3GM(t26D>yyiHBz3dPqfHls3~@q-d`h`*okg6V8G-g%kxnc~YwdE7U~ag3U~ z1b)5#v|e3w*D=$f(Sy@Q(#~1$eb%JZv^^YHck^oB!{rpK@6v)U#PRrAZsC37SR~S* z&S`Ad%GwrBFLn3-wj`Jje*CPBb{0V&kStG}Q~`|>E}>8T3<2RM<-8zFPUyi2b=r7~ z9fIF25-0r1Y`nctX{V5u?By5cYe3E_QMpl!!PP-xb}j6v@6%MhGx}X%xbJZeJsIhm z?9#UKi=on&RqaV&YUo^tEmw!D)LF5xvM>+<1`Jv#SqDRx4DRP*4SJ0tEC)E?2?_aFBJ#PzRDS8BNAl7~^lf)!J! zSjEuINqB@~TwNo(5w7@Q8@ilK$rqhyD*b>!RPW_jT%l2@0b3B|jp ztrv&;vFj((R2{QCJ3zFP1S)p@@8-n+6nnD_$u~8(N#z~<3qO(CLf^s=3BntK@+3mw zVpzt#S4bxyjnj|dWHr7@Y3f?D442>HxkOC*<{r1I)uQ7tWIwP8mud;}doY9S%#TQ} zTY1~3l#DoxR9v$ltO}Y6TWcQvB~^|5!rcU68;4xil}LtcXHfOxQYSf#U*1w)&7t-z zYaQtbAy$eI(y0c#3mWT@)T+a~Vhg@IJ{ag(H(#*7+}@p2s<>vDjp`tb{&ql^obovp zYW86o44kE`zLa*jvk&dscwsig^fWMFPWBa|#@*_0QuCyblsOh7&$X=2(`Bpb5 zQ#wScjg}9j4`pb3^)`lmo`p1S7|=X*dctj|3u-FOmqiIIo~lo}F^I$_xm6Af!qpyzgE}deq*A-QI+!qd5uk zZupeV4^LQgh*Ps>aOhe_hwfy2RJRT~`E|rX&UF(w$;j)b9{MXv$e0x~Wd_Vw+=PL? zCLc&8V0y_wH?f`ej<~YZpa3Imq(|E1*zGRp=Knro(2a#Yz2&Ir@s3e7JDT*2`(hlS zFR65@C~ujI(&la?%ref9H8ScWg;uOan;=MUA6a4*&;-rRo;K#AGsK~qLEYo=AVp0a z3+nV=xG(d+G7aIA6+!9!4__lH?1I1>T#gKy!s_aN;&_g(Mgyf4idU=7snk%OZv1J5 zN|(=SSk?9}(uYU*q}wm86klHHTG^b79=P@`ER$AlI)v-7%Wa8Iw5H?ZzwoYI(GR|o zJ2JU)1}$k2qZiI|q7Oa0tQ-~Z+Gg7xaLSbQ$I{B=lS=%q&mHHmX%~WY9<*N8o*IDW_ zET5gM4?drcwCmQA)kk%V+0M5JhxyH`&57trOj7Z9E+`4)wy9MxiEr}m=f!VZKL;H) zcE?9-0h&<4ZXqR$S>2R*|E#~yF2NQuyYgOIV8kU9zWIq2YP{WbPSta(+rP8HYyQLL z@#xFv5*#(aw*52qd7`dyO;2kkC9;t#w|G&lHGpB|I-X*^Bt)+^d`5 z@i?28@!Jaa=6N1DK^#Sc<9OLl<@?9LjZ&acCB>?Y9Rq2TM6ZCL^}a6q@iUdNR!uBb z@8N?Ym5~E^{TxqK$fie%LTis=wKkc)-Y29f3BjXWk|11(c-6x(+*tWd2*)NypgR*#PWQ4E3WhY&8Ec$5~*8Mz`hOdb7p%Oma@x{sp`Ssd|fK9i3 z%*x`EL>@xtV90m&Cf1$1@s^kAg-FReZWK~g7b|7P&Cx5@PGPqf7kZ0mFraQpJ^}CCHF$;}K#yl|J=ao%{wn*PwA35t~S3D_LR)M^TZg}p*Qi}aH2%|$D z=dK|9>bM_H*%O9};7-`;R*0NBXZe#fx2EA`c1^!LzgLttFfo|w91a3coqv0e=*)hh zUJ9TvIo6Ar#>1#pE2=xq$=L=%aJMgwV|3f$G?LZ?sIUv_w>ih3V6iIL);^l$ZyW71 zteKT|+Sri6{Ic@6SuF~rJwW0ylTqo+eY0ZiAi(Ih^4TgYhdynmh{-0}XrL`UCe(~k zvQ*e+!}7k%X6AbRs4=rJuUF^tz{siPHD0KMoOAR38h%N8Dg9!SU_NA_=-DS(T64ol z&+d&SVlE%N4u;k9vI&zq)^F1hg6IDBbE7-4S5U_c1Rbcfz!Ia1gKa&(=1}hI`!m1A z4qg!X;dAk~O;yz})k2~NMtvG#4tyO5n0#=}GX+-tB|s;27+p7IkML>hoyyt9 zM8Fn|jg3Un#B1nd9sQJpah`N9RnGREjYFGP-aLOM8<`R6=A~1b8$-;Xzd``=KV|T! z4P&m6Cs?BZDp&-i3z{s^4QuYyge)rRyly!QH0&$<*(VSK zIwd5%fDyEE_s2F}1Hn9`eiq#OcK7N2#ZS*!Vlu*q=RHdoAA2p+ICU~v!NJ=idlH^< z!v_$L=FhRx8vRrz&;AschGb}?T!c%|V^JBi6d@DDD zp{`GFF9QlKRGN-gp*$Z7!}3g5ZMKtyGF4_m7xwaVmRm%N=2$6fZPTBaq9Xky$&ChCRN&ouCOi z_e!`E?PY^i)_5n25!IBDCo_+MJzb@iy;JG93e&gBCUP#75~+tZ|6A&{ZB`39k8uZf zyKVFpHewhXpVwJOor~6j#XSca1bKUcSwvqd4~d0OFW($=H?4&oeu>sG3?VZ^lWU`u z^1VtG^IYnebf6YK^Joh(M7P#iJv+K2{asVQk^jc6OD&t_x0g3c`t<%ddq8Kwc4#Xu zc!DlJWY34|8W~8MZ^)pSiyDwEjb_+#G`%ido%7l{a9Is`N!!H7Y)Pa#;Y~-eI;M~L zkA7$K#-d~CBKL`o$#vOn%>O6oKU_{X(cSeiWzGg1)rMD$bXq%_W3tBpdG*~rqjv5` zf38+e_TEpWm0B(gKBNG_Q2Rg5YF*^b_VcV?CK0qs(LR5a4>rp5YPE5<+;>#37d^^s|AjS)FSji>^m;kwJeML-3y z$Rgpn2Zwt~Ym*^>5u8&N<1O`nvuXcBA^zte96TJnal%&9{`5VcpZF)hf6icI>0t57 H43Y3JENC%9 literal 0 HcmV?d00001 diff --git a/JDBC Tasks/DatabaseTask1/db.sql b/JDBC Tasks/DatabaseTask1/db.sql new file mode 100644 index 0000000..67fb56d --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/db.sql @@ -0,0 +1,17 @@ +CREATE TABLE `classroom` ( + `Id` int(50) NOT NULL AUTO_INCREMENT, + `Name` varchar(100) NOT NULL, + `GPA` double NOT NULL, + `Gender` enum('F','M') NOT NULL, + PRIMARY KEY(`Id`) +); + +-- +-- Dumping data for table `classroom` +-- + +INSERT INTO `classroom` (`Id`, `Name`, `GPA`, `Gender`) VALUES +(NULL, 'Amira Taha Ahmed', 4.00, 'F'), +(NULL, 'Ahmed Taha Ahmed', 3.03, 'M'), +(NULL, 'Mai Ali Mohammed', 3.99, 'F'), +(NULL, 'Nour Mohammed Ali', 2.78, 'M'); diff --git a/JDBC Tasks/DatabaseTask1/screenshot.PNG b/JDBC Tasks/DatabaseTask1/screenshot.PNG new file mode 100644 index 0000000000000000000000000000000000000000..a7adac5ad22b46d85b2d82ab0bb2e3dd682f9bb4 GIT binary patch literal 21856 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 UpbR@;D(V)rsTCssoZIdH0Admz6#xJL literal 0 HcmV?d00001 diff --git a/JDBC Tasks/DatabaseTask1/src/DBSingleton.java b/JDBC Tasks/DatabaseTask1/src/DBSingleton.java new file mode 100644 index 0000000..00c78b0 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/src/DBSingleton.java @@ -0,0 +1,35 @@ +import java.sql.*; +import java.util.Formatter; + +// use Singleton pattern +class DBSingleton { + private static DBSingleton connection; + private DBSingleton(){} + + public static DBSingleton getInstance(){ + if(connection == null) connection = new DBSingleton(); + return connection; + } + + public static Connection getConnection() throws SQLException, ClassNotFoundException { + Connection connection = null; + Class.forName("com.mysql.jdbc.Driver"); + connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "root", ""); + return connection; + } + + public void viewRecords() throws SQLException, ClassNotFoundException { + Connection con = this.getConnection(); + PreparedStatement ps = con.prepareStatement("select * from Classroom"); + ResultSet rs = ps.executeQuery(); + + System.out.println("Classroom Info"); + Formatter format = new Formatter(); + format.format("%20s %20s %20s %20s\n", "Student Id", "Student Name", "Student Gender" , "Student GPA"); + while (rs.next()) { + format.format("%20s %20s %20s %20s\n", rs.getInt(1), rs.getString(2), rs.getString(4) , rs.getDouble(3)); + } + System.out.println(format); + } +} + diff --git a/JDBC Tasks/DatabaseTask1/src/Main.java b/JDBC Tasks/DatabaseTask1/src/Main.java new file mode 100644 index 0000000..881e018 --- /dev/null +++ b/JDBC Tasks/DatabaseTask1/src/Main.java @@ -0,0 +1,8 @@ +import java.sql.SQLException; + +public class Main { + public static void main(String[] args) throws SQLException, ClassNotFoundException { + DBSingleton classroom = DBSingleton.getInstance(); + classroom.viewRecords(); + } +} \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.gitignore b/JDBC Tasks/DatabaseTask2/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.idea/misc.xml b/JDBC Tasks/DatabaseTask2/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.idea/modules.xml b/JDBC Tasks/DatabaseTask2/.idea/modules.xml new file mode 100644 index 0000000..0a5795d --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.idea/vcs.xml b/JDBC Tasks/DatabaseTask2/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.idea/workspace.xml b/JDBC Tasks/DatabaseTask2/.idea/workspace.xml new file mode 100644 index 0000000..bf25a04 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.idea/workspace.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + 1692586476954 + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/DatabaseTask2.iml b/JDBC Tasks/DatabaseTask2/DatabaseTask2.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/DatabaseTask2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/src/Main.java b/JDBC Tasks/DatabaseTask2/src/Main.java new file mode 100644 index 0000000..3e59c38 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index a974d78..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# JobHacker-System -This repo for JobHacker Community tasks. From ca1e260429a9fbce0b4cde51f8b6f29a403fa93a Mon Sep 17 00:00:00 2001 From: Amira Taha <74466997+amira921@users.noreply.github.com> Date: Mon, 21 Aug 2023 07:15:41 +0300 Subject: [PATCH 2/8] Update README.md --- JDBC Tasks/DatabaseTask1/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index 69211a7..89658d7 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -2,7 +2,7 @@ ## Task 1 - Java application for connect to a database on MySQL Server and execute a query which selects numbers of fields from a table and print it with any specific format, by using load a specific driver and get the connection using DriverManager class. + Java application for connecting to a database on MySQL Server and executing a query which selects numbers of fields from a table and prints it with any specific format, by using load a specific driver and getting the connection using DriverManager class.
@@ -13,7 +13,7 @@ 2. Start Apache and MYSQL modules. 3. Open phpMyAdmin. 4. Create a new database -5. Import [db file](). +5. Import [db file](JDBC Tasks/DatabaseTask1/db.sql).
#### SQL Code in db file @@ -40,7 +40,7 @@ INSERT INTO `classroom` (`Id`, `Name`, `GPA`, `Gender`) VALUES ## Java Application Singleton pattern used for database class. -Singleton class created for database that has only one instance and provides a global point of access to it, it Saves memory because object is not created at each request, only single instance is reused again and again. +Singleton class is created for the database that has only one instance and provides a global point of access to it, it Saves memory because the object is not created at each request, only a single instance is reused again and again. **UML diagram**
From 3b3b37a09165550efa40dca151b13f5300141245 Mon Sep 17 00:00:00 2001 From: Amira Taha <74466997+amira921@users.noreply.github.com> Date: Mon, 21 Aug 2023 07:17:52 +0300 Subject: [PATCH 3/8] Update README.md --- JDBC Tasks/DatabaseTask1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index 89658d7..a9a6434 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -13,7 +13,7 @@ 2. Start Apache and MYSQL modules. 3. Open phpMyAdmin. 4. Create a new database -5. Import [db file](JDBC Tasks/DatabaseTask1/db.sql). +5. Import [db file](https://github.com/amira921/JobHacker-System/blob/JDBCTasks/JDBC%20Tasks/DatabaseTask1/db.sql).
#### SQL Code in db file From 778988c9ee3a4a8ab8bd9dc27f87892c7293d21e Mon Sep 17 00:00:00 2001 From: Amira Taha <74466997+amira921@users.noreply.github.com> Date: Mon, 21 Aug 2023 19:43:54 +0300 Subject: [PATCH 4/8] Update README.md --- JDBC Tasks/DatabaseTask1/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index a9a6434..2f2d965 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -26,11 +26,25 @@ CREATE TABLE `classroom` ( PRIMARY KEY(`Id`) ); +-- +-- Dumping data for table `classroom` +-- + INSERT INTO `classroom` (`Id`, `Name`, `GPA`, `Gender`) VALUES (NULL, 'Amira Taha Ahmed', 4.00, 'F'), (NULL, 'Ahmed Taha Ahmed', 3.03, 'M'), (NULL, 'Mai Ali Mohammed', 3.99, 'F'), (NULL, 'Nour Mohammed Ali', 2.78, 'M'); + +DELIMITER $$ +-- +-- Procedures +-- +CREATE DEFINER=`root`@`localhost` PROCEDURE `GetStudents` () BEGIN + SELECT * from `classroom`; +END$$ + +DELIMITER ; ```
From c62c43bd5fbaf11bb980d10b9fdeab29ebabcc4c Mon Sep 17 00:00:00 2001 From: Amira Taha <74466997+amira921@users.noreply.github.com> Date: Mon, 21 Aug 2023 20:01:18 +0300 Subject: [PATCH 5/8] Update README.md --- JDBC Tasks/DatabaseTask1/README.md | 36 +----------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index 2f2d965..59aa977 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -13,41 +13,7 @@ 2. Start Apache and MYSQL modules. 3. Open phpMyAdmin. 4. Create a new database -5. Import [db file](https://github.com/amira921/JobHacker-System/blob/JDBCTasks/JDBC%20Tasks/DatabaseTask1/db.sql). -
- -#### SQL Code in db file -``` -CREATE TABLE `classroom` ( - `Id` int(50) NOT NULL AUTO_INCREMENT, - `Name` varchar(100) NOT NULL, - `GPA` double NOT NULL, - `Gender` enum('F','M') NOT NULL, - PRIMARY KEY(`Id`) -); - --- --- Dumping data for table `classroom` --- - -INSERT INTO `classroom` (`Id`, `Name`, `GPA`, `Gender`) VALUES -(NULL, 'Amira Taha Ahmed', 4.00, 'F'), -(NULL, 'Ahmed Taha Ahmed', 3.03, 'M'), -(NULL, 'Mai Ali Mohammed', 3.99, 'F'), -(NULL, 'Nour Mohammed Ali', 2.78, 'M'); - -DELIMITER $$ --- --- Procedures --- -CREATE DEFINER=`root`@`localhost` PROCEDURE `GetStudents` () BEGIN - SELECT * from `classroom`; -END$$ - -DELIMITER ; -``` -
- +5. Import [SQL code](https://github.com/amira921/JobHacker-System/blob/JDBCTasks/JDBC%20Tasks/DatabaseTask1/db.sql). 6. Install [MYSQL driver](https://static.javatpoint.com/src/jdbc/mysql-connector.jar). 7. Add driver in project dependencies. From 18e830d14c99a85f1298c1e44f432e75fca681cb Mon Sep 17 00:00:00 2001 From: amira921 Date: Mon, 21 Aug 2023 20:15:45 +0300 Subject: [PATCH 6/8] add procedure --- JDBC Tasks/DatabaseTask1/README.md | 5 +---- JDBC Tasks/DatabaseTask1/src/DBSingleton.java | 11 +++++++---- JDBC Tasks/DatabaseTask1/src/Main.java | 3 ++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index 59aa977..052239a 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -23,7 +23,4 @@ Singleton pattern used for database class. Singleton class is created for the database that has only one instance and provides a global point of access to it, it Saves memory because the object is not created at each request, only a single instance is reused again and again. **UML diagram** -
- - - +
\ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask1/src/DBSingleton.java b/JDBC Tasks/DatabaseTask1/src/DBSingleton.java index 00c78b0..362fbc3 100644 --- a/JDBC Tasks/DatabaseTask1/src/DBSingleton.java +++ b/JDBC Tasks/DatabaseTask1/src/DBSingleton.java @@ -1,3 +1,4 @@ +import java.io.IOException; import java.sql.*; import java.util.Formatter; @@ -13,14 +14,14 @@ public static DBSingleton getInstance(){ public static Connection getConnection() throws SQLException, ClassNotFoundException { Connection connection = null; - Class.forName("com.mysql.jdbc.Driver"); + Class.forName("com.mysql.jdbc.Driver"); // loading mysql driver to establish database connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "root", ""); return connection; } - public void viewRecords() throws SQLException, ClassNotFoundException { - Connection con = this.getConnection(); - PreparedStatement ps = con.prepareStatement("select * from Classroom"); + public void viewRecords() throws SQLException, ClassNotFoundException, IOException { + Connection con = getConnection(); + CallableStatement ps = con.prepareCall("{call GetStudents()}"); ResultSet rs = ps.executeQuery(); System.out.println("Classroom Info"); @@ -30,6 +31,8 @@ public void viewRecords() throws SQLException, ClassNotFoundException { format.format("%20s %20s %20s %20s\n", rs.getInt(1), rs.getString(2), rs.getString(4) , rs.getDouble(3)); } System.out.println(format); + + con.close(); } } diff --git a/JDBC Tasks/DatabaseTask1/src/Main.java b/JDBC Tasks/DatabaseTask1/src/Main.java index 881e018..2ebdc02 100644 --- a/JDBC Tasks/DatabaseTask1/src/Main.java +++ b/JDBC Tasks/DatabaseTask1/src/Main.java @@ -1,7 +1,8 @@ +import java.io.IOException; import java.sql.SQLException; public class Main { - public static void main(String[] args) throws SQLException, ClassNotFoundException { + public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException { DBSingleton classroom = DBSingleton.getInstance(); classroom.viewRecords(); } From 59d9c5341de0dccb637e847b529701067dede2b9 Mon Sep 17 00:00:00 2001 From: amira921 Date: Thu, 24 Aug 2023 09:35:45 +0300 Subject: [PATCH 7/8] task2 added --- JDBC Tasks/DatabaseTask1/MYSQL screenshot.PNG | Bin 0 -> 38356 bytes JDBC Tasks/DatabaseTask1/README.md | 4 +- JDBC Tasks/DatabaseTask2/.idea/uiDesigner.xml | 124 ++++++++++++++++++ JDBC Tasks/DatabaseTask2/.idea/workspace.xml | 23 +++- JDBC Tasks/DatabaseTask2/DatabaseTask2.iml | 9 ++ .../DatabaseTask2/Java app screenshot.PNG | Bin 0 -> 58910 bytes JDBC Tasks/DatabaseTask2/MYSQL screenshot.PNG | Bin 0 -> 12366 bytes JDBC Tasks/DatabaseTask2/README.md | 29 ++++ JDBC Tasks/DatabaseTask2/UML Diagram.PNG | Bin 0 -> 37386 bytes JDBC Tasks/DatabaseTask2/src/Employee.java | 63 +++++++++ JDBC Tasks/DatabaseTask2/src/EmployeeDB.java | 70 ++++++++++ JDBC Tasks/DatabaseTask2/src/Main.java | 11 +- .../src/SingletonDBConnection.java | 14 ++ 13 files changed, 342 insertions(+), 5 deletions(-) create mode 100644 JDBC Tasks/DatabaseTask1/MYSQL screenshot.PNG create mode 100644 JDBC Tasks/DatabaseTask2/.idea/uiDesigner.xml create mode 100644 JDBC Tasks/DatabaseTask2/Java app screenshot.PNG create mode 100644 JDBC Tasks/DatabaseTask2/MYSQL screenshot.PNG create mode 100644 JDBC Tasks/DatabaseTask2/README.md create mode 100644 JDBC Tasks/DatabaseTask2/UML Diagram.PNG create mode 100644 JDBC Tasks/DatabaseTask2/src/Employee.java create mode 100644 JDBC Tasks/DatabaseTask2/src/EmployeeDB.java create mode 100644 JDBC Tasks/DatabaseTask2/src/SingletonDBConnection.java diff --git a/JDBC Tasks/DatabaseTask1/MYSQL screenshot.PNG b/JDBC Tasks/DatabaseTask1/MYSQL screenshot.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2ca0ac50bb9bb730f38d663c3c84b1e4af53141e GIT binary patch literal 38356 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 MmPbpCe!cYn0jr*TegFUf literal 0 HcmV?d00001 diff --git a/JDBC Tasks/DatabaseTask1/README.md b/JDBC Tasks/DatabaseTask1/README.md index 052239a..28ddd8a 100644 --- a/JDBC Tasks/DatabaseTask1/README.md +++ b/JDBC Tasks/DatabaseTask1/README.md @@ -4,7 +4,9 @@ Java application for connecting to a database on MySQL Server and executing a query which selects numbers of fields from a table and prints it with any specific format, by using load a specific driver and getting the connection using DriverManager class. -
+
+
+ ## Project Description diff --git a/JDBC Tasks/DatabaseTask2/.idea/uiDesigner.xml b/JDBC Tasks/DatabaseTask2/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/JDBC Tasks/DatabaseTask2/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JDBC Tasks/DatabaseTask2/.idea/workspace.xml b/JDBC Tasks/DatabaseTask2/.idea/workspace.xml index bf25a04..e47b72c 100644 --- a/JDBC Tasks/DatabaseTask2/.idea/workspace.xml +++ b/JDBC Tasks/DatabaseTask2/.idea/workspace.xml @@ -4,15 +4,30 @@