Slide 1

Slide 1 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ৽ਓݚम΍ຊͰ͸ ڭ͑ͯ͘Εͳ͍+BWBʂ ʙϑϨʔϜϫʔΫͷ࢓૊Έͱ࣮຿ඞਢπʔϧΛֶ΅͏ʙ ג ΧαϨΞϧଟాਅහ ++6($$$'BMM

Slide 2

Slide 2 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͜ͷηογϣϯʹ͍ͭͯ ▸ ৽ਓݚम΍ࢢൢॻ੶Ͱ͸ͳ͔ͳ͔঺հ͞Εͳ͍ ͕ɺ։ൃݱ৔Ͱ͸ॏཁʹͳΔ಺༰ΛϨΫνϟʔ ▸ +BWBॳ৺ऀɺ͓Αͼࢦಋ໾ͷઌഐ͕ର৅ 2

Slide 3

Slide 3 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ஫ҙ఺ ▸ ෼͔Γ΍͢͞Λ࠷ॏࢹͨͨ͠Ίɺٕज़తͳਖ਼֬ ͞ʹ͚ܽΔ෦෼͕͋Δ͔΋͠Ε·ͤΜ ▸ ͓ؾ෇͖ͷ఺͕͋Ε͹ɺ
 5XJUUFS౳Ͱ༏͘͠ࢦఠͯ͠΍͍ͬͯͩ͘͞ 3

Slide 4

Slide 4 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 େࣄͳ͜ͱͳͷͰճݴ͍·͢ ▸༏͘͠
 ࢦఠͯ͠΍͍ͬͯͩ͘͞ 4

Slide 5

Slide 5 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 5

Slide 6

Slide 6 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ࣗݾ঺հ ▸ ଟాਅහʢ!TVLF@NBTBʣ ▸ ݚमτϨʔφʔ!ΧαϨΞϧ ▸ ઐ໳ɿ+BWB&&4QSJOH4XJGU ▸ (MBTT'JTI6TFS(SPVQ+BQBOӡӦϝϯόʔ ▸ +BWB&&(VBSEJBOT ▸ ++6($$$ग़৔ɿճ࿈ଓճ໨ 6

Slide 7

Slide 7 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 7

Slide 8

Slide 8 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 Ұൠతͳ+BWB৽ਓݚम લ൒ ᶃ ίϯϐϡʔλʔͷجૅʢʙ೔ؒʣ ▸ ίϯϐϡʔλʔͷେػೳɺωοτϫʔΫɺ%#42- ᶄ ϓϩάϥϛϯάͷجૅʢʙ೔ؒʣ ▸ ม਺ɺ৚݅෼ذɺ܁Γฦ͠ɺ഑ྻɺϝιου ᶅ ΦϒδΣΫτࢦ޲ʢʙ೔ؒʣ ▸ ΫϥεɺίϯετϥΫλɺΦʔόʔϩʔυɺܧঝɺΞΫηεम ০ࢠɺΦʔόʔϥΠυɺந৅ΫϥεɺΠϯλϑΣʔε 8

Slide 9

Slide 9 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 Ұൠతͳ+BWB৽ਓݚम ޙ൒ ᶆ ඪ४"1*ʢʙ೔ؒʣ ▸ 4USJOHɺϥούʔΫϥεɺ%BUFɺ4JNQMF%BUF'PSNBUɺ
 'JMF3FBEFS8SJUFSɺ"SSBZ-JTUɺ)BTI.BQ ᶇ 8FCΞϓϦέʔγϣϯʢʙ೔ؒʣ ▸ αʔϒϨοτɺ+41ɺ+%#$ ᶈ ։ൃԋशʢʙ೔ؒʣ ‣ ʙਓͷάϧʔϓͰͷٖࣅϓϩδΣΫτ 9

Slide 10

Slide 10 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ৽ਓݚमͰ͸ڭΘΒͳ͍ ͜ͱ͕ଟ͍ +BWB ▸ ྻڍܕ &OVN ▸ ֦ுGPSจ ▸ USZXJUISFTPVSDFT ▸ ϥϜμࣜ4USFBN"1* ▸ %BUFBOE5JNF"1* 10 Java SE 5Ҏ߱ͷ৽ػೳ͸ ΄ͱΜͲशΘͳ͍ʂ ※ݱࡏ͸Java SE 8͕࠷৽ ※δΣωϦΫεͱΦʔτϘΫγϯά͸ ɹश͏͜ͱ͕ଟ͍

Slide 11

Slide 11 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ৽ਓݚमͰ͸ڭΘΒͳ͍ ͜ͱ͕ଟ͍ 8FC ▸ +45- ▸ )551ͷৄࡉ ▸ εςʔλείʔυɺϔομʔɺ$PPLJFͳͲ ▸ σʔλιʔε ▸ !8FC4FSWMFUΞϊςʔγϣϯ 11 ΧϦΩϡϥϜ͸ 15೥͘Β͍มΘͬͯͳ͍

Slide 12

Slide 12 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͦ΋ͦ΋+BWB͸ྔ͕ଟ͍ʂ ▸ ʙϲ݄ؒͷ৽ਓݚमͰશ෦͸ڭ͖͑Εͳ͍ ▸ ݚमҎ্ͷࣗݾֶश͸ඞਢ ▸ ྑॻ͸ଟ͍ͷͰࣗݾֶश͸Մೳʂ ▸ ࠷ޙʹ঺հ͠·͢ 12

Slide 13

Slide 13 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 13

Slide 14

Slide 14 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 +BWB͸Φʔϓϯιʔε͕ॆ࣮ʂ ▸ ੈքதͷਓ͕ϥΠϒϥϦΛ࡞੒ɾެ։͍ͯ͠Δ 14 ͜Μͳͷ࡞ͬͨΑʂ ΈΜͳ࢖ͬͯʂ ͜Μͳͷ࡞ͬͨΑʂ ΈΜͳ࢖ͬͯʂ ͜Μͳͷ࡞ͬͨΑʂ ΈΜͳ࢖ͬͯʂ ͜Μͳͷ࡞ͬͨΑʂ ΈΜͳ࢖ͬͯʂ

Slide 15

Slide 15 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ໰୊఺ɿͲ͏΍ͬͯϥΠϒϥϦΛूΊΔʁ ▸ ֤ϥΠϒϥϦͷެࣜαΠτʹΞΫηε͢Δ
 ˠݸ਺͕ଟ͍ͱେม 15 ϥΠϒϥϦAͷ ެࣜαΠτ ϥΠϒϥϦBͷ ެࣜαΠτ ϥΠϒϥϦCͷ ެࣜαΠτ ϥΠϒϥϦDͷ ެࣜαΠτ ϥΠϒϥϦEͷ ެࣜαΠτ

Slide 16

Slide 16 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ໰୊఺ɿґଘੑ͸Ͳ͏΍ͬͯղܾ͢Δʁ ▸ ͋ΔϥΠϒϥϦ"͕ɺผͷϥΠϒϥϦ#ͱ$Λ࢖ͬ ͍ͯͯɺ#͸ߋʹ%ͱ&Λ࢖͍ͬͯΔ
 ˠશ෦ௐ΂ͳ͖Ό͍͚ͳ͍ͷʁ 16 ϥΠϒϥϦA ϥΠϒϥϦB ϥΠϒϥϦC ϥΠϒϥϦD ϥΠϒϥϦE

Slide 17

Slide 17 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ໰୊఺ɿόʔδϣϯΞοϓͲ͏͢Δʁ ▸ ϥΠϒϥϦ"ͷόʔδϣϯΛ্͛Δͱɺґଘ͢Δ ϥΠϒϥϦ΋ҶͮΔࣜʹ্͛ͳ͚Ε͹ͳΒͳ͍
 ˠຖճɺಉ͡ௐࠪΛ͢Δͷʁ 17 ϥΠϒϥϦA 1.0->1.1 ϥΠϒϥϦB 2.1->2.3 ϥΠϒϥϦC 1.1.1->1.1.2 ϥΠϒϥϦD 4.3.0->5.0.0 ϥΠϒϥϦE 2.2.2->2.2.2

Slide 18

Slide 18 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͦ͜Ͱ.BWFOʂ ▸ 9.-ʹඞཁͳϥΠϒϥϦΛॻ͚ͩ͘Ͱ ▸ ඞཁͳϥΠϒϥϦͷμ΢ϯϩʔυ΍ɺΫϥεύε΁ͷ௥ Ճ͕Ͱ͖Δʂ ▸ ґଘϥΠϒϥϦΛҶͮΔࣜʹऔಘͰ͖Δʂ ▸ όʔδϣϯΞοϓ͸ઃఆϑΝΠϧΛॻ͖׵͑Δ͚ͩʂ ▸ ݱࡏͰ͸ɺ+BWBϏϧυπʔϧͷσϑΝΫτελϯ μʔυ 18

Slide 19

Slide 19 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .BWFO$FOUSBM3FQPTJUPSZ ▸ Πϯλʔωοτ্ͷɺ΄ͱ ΜͲͷΦʔϓϯιʔεϥΠ ϒϥϦ͕ू·͍ͬͯΔ৔ॴ ▸ 9.-ʹࢦఆͨ͠ϥΠϒϥϦ ͸ɺ͔͜͜Βμ΢ϯϩʔυ ͞ΕΔ ▸ IUUQTFBSDINBWFOPSH Ͱݕࡧ΋Մೳ 19 ϥΠϒϥϦ ϥΠϒϥϦ ϥΠϒϥϦ ϥΠϒϥϦ ϥΠϒϥϦ

Slide 20

Slide 20 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .BWFOͷΠϯετʔϧ ᶃ IUUQTNBWFOBQBDIFPSHEPXOMPBEDHJ
 ͔Β;*1Λμ΢ϯϩʔυˠద౰ͳϑΥϧμʹల։ ᶄ ల։ઌϑΥϧμBQBDIFNBWFOCJOΛ؀ ڥม਺1"5)ʹ௥Ճ 20

Slide 21

Slide 21 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 *%&Λ࢖͏ͱʁ ▸ *%&ʹ͸ݩ͔Β.BWFO͕಺แ͞Ε͍ͯΔ ▸ ͨͩ͠ɺίϚϯυϓϩϯϓτ͔Β.BWFOΛ࢖͏ ͜ͱ΋ଟ͍ ▸ ͳΔ΂͘ɺݸผʹ΋Πϯετʔϧ͠·͠ΐ͏ 21

Slide 22

Slide 22 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .BWFOϓϩδΣΫτͷ࡞੒ ᶃ<ϑΝΠϧ><৽ن>
 <ͦͷଞ>
 <.BWFO>
 <.BWFOϓϩδΣΫτ>
 <࣍΁> ᶄ<γϯϓϧͳϓϩδΣΫτ ͷ࡞੒>ʹνΣοΫ
 <࣍΁> 22

Slide 23

Slide 23 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .BWFOϓϩδΣΫτͷ࡞੒ ᶅ<άϧʔϓ*E>ͱ<ΞʔςΟ ϑΝΫτ*E>ʹద౰ʹೖྗ
 <ύοέʔδϯά>͸8FC ͳΒɺͦΕҎ֎ͳ Β
 <׬ྃ> 23

Slide 24

Slide 24 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 QPNYNMͷฤू ▸ ͜͜ʹඞཁͳϥΠϒϥϦΛهड़͢Δ 24 org.springframework spring-jdbc 4.3.4.RELEASE compile

Slide 25

Slide 25 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 QPNYNMͷฤू ▸ ඞཁͳϥΠϒϥϦ͕ҶͮΔࣜʹμ΢ϯϩʔυ͞ ΕΔ 25

Slide 26

Slide 26 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 EFQFOEFODZͷࢠཁૉ 26 ࢠཁૉ໊ ҙຯ groupId ϥΠϒϥϦΛ࡞੒͍ͯ͠Δஂମ໊ artifactId ϥΠϒϥϦ໊ version ϥΠϒϥϦͷόʔδϣϯ scope ʢޙड़ʣ

Slide 27

Slide 27 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 EFQFOEFODZͷॻ͖ํΛௐ΂Δํ๏ ᶃIUUQTFBSDINBWFOPSHͰݕࡧ
 ˠόʔδϣϯ൪߸ΛΫϦοΫ ▸ ϦϯΫΛΫϦοΫ͢ΔͱɺશόʔδϣϯͷҰཡ͕ݟΕΔ 27

Slide 28

Slide 28 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 EFQFOEFODZͷॻ͖ํΛௐ΂Δํ๏ ᶄ9.-͕ॻ͍ͯ͋ΔͷͰɺ ͜ΕΛίϐϖ͢Ε͹0, ▸ खॻ͖͢Δͱϛε͠·͢ 28

Slide 29

Slide 29 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϥΠϒϥϦͷอଘ৔ॴ ▸ Ұ౓μ΢ϯϩʔυͨ͠ϥΠϒϥϦ͸ɺԼهͷϑΥ ϧμʹอଘ͞ΕΔ ▸ 8JOEPXTˠ$a6TFSTaϢʔβʔ໊aNaSFQPTJUPSZ ▸ NBD04ˠ6TFSTϢʔβʔ໊NSFQPTJUPSZ 29

Slide 30

Slide 30 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 +"3΁ͷύοέʔδϯά ▸ ίϚϯυϓϩϯϓτͰQPNYNM ͕͋ΔϑΥϧμʹҠಈ
 ˠmvn packageίϚϯυΛ࣮ߦ
 ˠUBSHFUϑΥϧμ͕࡞੒͞Εɺ
 ɹͦͷதʹ+"3ϑΝΠϧ͕
 ɹ࡞੒͞ΕΔ ▸ લʹ࡞੒ͨ͠+"3ͳͲΛ࡟আͯ͠ ࠶ύοέʔδϯά͍ͨ͠৔߹͸ mvn clean packageΛ࣮ߦ 30

Slide 31

Slide 31 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .BWFOϓϩδΣΫτͷϑΥϧμߏ଄ 31 ϓϩδΣΫτ pom.xml src main test java resources java resources ιʔείʔυ ઃఆϑΝΠϧ ςετ༻ιʔείʔυ ςετ༻ઃఆϑΝΠϧ

Slide 32

Slide 32 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϑΥϧμߏ଄ͱ+"3ύοέʔδϯά 32 ͚͕ͩ͜͜JARʹ ؚ·ΕΔ

Slide 33

Slide 33 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 $ jar -tf target/maven-sample-1.0-SNAPSHOT.jar com/example/entity/Employee.class com/example/repository/EmployeeRepository.class jdbc.properties ϑΥϧμߏ଄ͱ+"3ύοέʔδϯά 33 src/main/java ͷத਎ src/main/resources ͷத਎ JARϑΝΠϧͷத਎ΛݟΔίϚϯυ ※Ұ෦লུ͍ͯ͠·͢

Slide 34

Slide 34 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 8FCΞϓϦέʔγϣϯͷ৔߹ ▸ QPNYNMͰԼهͷΑ͏ʹࢦఆ 34 com.example maven-sample 1.0-SNAPSHOT war

Slide 35

Slide 35 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 8FCΞϓϦέʔγϣϯͷϑΥϧμߏ଄ 35 src main test java resources java resources ιʔείʔυ ઃఆϑΝΠϧ ςετ༻ιʔείʔυ ςετ༻ઃఆϑΝΠϧ webapp WEB-INF web.xml JSPɺHTMLͳͲ ※εϖʔεͷ౎߹্ɺϓϩδΣΫτϑΥϧμͱpom.xml͸লུ͍ͯ͠·͢

Slide 36

Slide 36 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϑΥϧμߏ଄ͱ8"3ύοέʔδϯά 36 WEB-INF/classes΁ WAR௚Լ΁

Slide 37

Slide 37 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 $ jar -tf target/maven-sample-1.0-SNAPSHOT.war index.jsp WEB-INF/web.xml WEB-INF/classes/com/example/entity/Employee.class WEB-INF/classes/com/example/repository/EmployeeRepository.class WEB-INF/classes/jdbc.properties WEB-INF/lib/commons-logging-1.2.jar WEB-INF/lib/spring-beans-4.3.4.RELEASE.jar WEB-INF/lib/spring-core-4.3.4.RELEASE.jar WEB-INF/lib/spring-jdbc-4.3.4.RELEASE.jar WEB-INF/lib/spring-tx-4.3.4.RELEASE.jar ϑΥϧμߏ଄ͱ8"3ύοέʔδϯά 37 src/main/java, src/main/resources pom.xmlʹࢦఆͨ͠ϥΠϒϥϦ ʢҶͮΔࣜʹඞཁͳ΋ͷ΋ؚΉʣ ※Ұ෦লུ͍ͯ͠·͢ src/main/webapp

Slide 38

Slide 38 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 TDPQFͱ͸ 38 org.springframework spring-jdbc 4.3.4.RELEASE compile ▸ ͦͷϥΠϒϥϦ͕ ▸ ͲΜͳ࣌ʹΫϥεύεʹ௥Ճ͞ΕΔͷ͔ʁ ▸ 8"3ʹؚ·ΕΔͷ͔ʁʢʹ8*/'MJCʹೖΔͷ͔ʣ

Slide 39

Slide 39 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 TDPQF͸ओʹछྨ 39 scope໊ ίϯύΠϧ ࣮ߦ ςετ WARʹؚ·ΕΔ compile (σϑΥϧτ) ̋ ̋ ̋ ̋ provided ̋ × × × runtime × ̋ ̋ ̋ test × × ̋ × ※΋͏1ͭʮsystemʯͱ͍͏scope͕͋Γ·͕͢ɺ͋·Γଟ༻͠ͳ͍ͷͰࠓճ͸આ໌͠·ͤΜ

Slide 40

Slide 40 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 TDPQFͷܾΊํ ▸ 8FCΞϓϦέʔγϣϯͷ৔߹ ▸ QSPWJEFEˠ"1αʔόʔʹؚ·Ε͍ͯΔ΋ͷʢαʔϒ Ϩοτ"1*ͳͲʣ ▸ DPNQJMFˠ"1αʔόʔʹؚ·Ε͍ͯͳ͍΋ͷ ▸ UFTUˠςετ࣌ʹͷΈඞཁͳ΋ͷ ▸ SVOUJNFˠ΄΅࢖Θͳ͍ 40

Slide 41

Slide 41 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ຊষͷ·ͱΊ ▸ QPNYNMʹEFQFOEFODZΛॻ͘ʂ ▸ EFQFOEFODZ͸.BWFO$FOUSBM3FQPTJUPSZͰ ݕࡧͯ͠ίϐʔʂ ▸ ϑΥϧμߏ଄͕ܾ·͍ͬͯΔʂ ▸ छྨͷείʔϓΛద੾ʹࢦఆ͠Α͏ʂ 41

Slide 42

Slide 42 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 42

Slide 43

Slide 43 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ৽ਓݚमఆ൪ͷ࠷ऴ՝୊ ▸ αʔϒϨοτɾ+41ɾ+%#$Ͱɺ
 "NB[POͷΑ͏ͳγϣοϐϯάαΠτΛ։ൃ ᶃϩάΠϯɾϩάΞ΢τ ᶄ঎඼ͷݕࡧ ᶅങ͍෺Χΰ΁ͷ௥Ճ ᶆ஫จొ࿥ 43

Slide 44

Slide 44 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 .7$Ϟσϧ ▸ ྫɿ঎඼ͷݕࡧ 44 ݕࡧΩʔϫʔυ ೖྗը໘ ʢJSPʣ ݕࡧ݁Ռ දࣔը໘ ʢJSPʣ ঎඼ݕࡧ ίϯτϩʔϥʔ ʢαʔϒϨοτʣ ঎඼DAO ʢJavaʣ ঎඼ ΤϯςΟςΟ ʢJavaʣ View Controller Model DB

Slide 45

Slide 45 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 αʔϒϨοτɾ+41ͷ໰୊఺ ▸ .ɾ7ɾ$͕ࠞࡏ͢Δ͜ͱ͕͋Δ ▸ ྫɿαʔϒϨοτ͸7JFXʹ΋ͳΕΔʢPVUQSJOUMO ʣ ▸ ྫɿ+41͸%#ΞΫηε΋Ͱ͖ΔʢεΫϦϓτϨοτʣ ▸ ೖྗνΣοΫػೳ͕ແ͍ ▸ αʔϒϨοτͷ୯ମςετ͕ࠔ೉ 45

Slide 46

Slide 46 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 +%#$ͷ໰୊఺ ▸ ࣅͨΑ͏ͳίʔυΛຖճ ॻ͔ͳ͚Ε͹ͳΒͳ͍ ▸ ίωΫγϣϯऔಘɺ
 εςʔτϝϯτऔಘɺ
 ύϥϝʔλࢦఆɺ
 ݁Ռηοτͷऔಘɺ
 ৚݅෼ذͯ͠ɺ
 ֤ྻ͔Β஋औΓग़͠ɺ
 ΤϯςΟςΟʹ୅ೖɺɾɾɾ 46 public Employee findById(Integer id) { Employee employee = null; // ໭Γ஋ String sql = "SELECT name, department_id," + " joined_date FROM employee WHERE id = ?"; try (Connection con = DriverManager .getConnection(URL, USER, PASSWORD); PreparedStatement ps = con.prepareStatement(sql)) { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { String name = rs.getString("name"); int departmentId = rs.getInt("department_id"); Date joinedDate = rs.getDate("joined_date"); employee = new Employee(); employee.setId(id); employee.setName(name); employee.setDepartmentId(departmentId); employee.setJoinedDate(joinedDate); } } catch (SQLException e) { // ຊདྷ͸ϩάग़ྗ΍ྫ֎ͷ࠶εϩʔΛߦ͏ e.printStackTrace(); } return employee; } ※ ※ʮϘΠϥʔϓϨʔτίʔυʯͱݺ͹ΕΔ

Slide 47

Slide 47 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͦ͜Ͱछͷਆثʂ ᶃ8FCϑϨʔϜϫʔΫ ▸ .7$ΛΩονϦ෼͚ΔʂೖྗνΣοΫػೳͱͷ࿈ܞʂ ᶄ%*ίϯςφ ▸ ୯ମςετΛ༰қʹ͢Δʂ ᶅ03Ϛούʔ ▸ %#ΞΫηεΛ؆ܿʹॻ͚Δʂ 47

Slide 48

Slide 48 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 8FCϑϨʔϜϫʔΫͱ͸ʁ ▸ ϑϨʔϜϫʔΫʹ࿮૊Έ ▸ Ϗϡʔͱͷ࿈ܞ͓ΑͼίϯτϩʔϥʔΛఏڙ͢Δ ▸ ίϯτϩʔϥʔ಺ʹϏϡʔͷग़ྗ͸ॻ͚ͳ͍ʂ 48 ೖྗը໘ ݁Ռը໘ ίϯτϩʔϥʔ DAO ΤϯςΟ ςΟ DB WebϑϨʔϜϫʔΫͷൣғ

Slide 49

Slide 49 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 8FCϑϨʔϜϫʔΫͷେ·͔ͳ࢓૊Έ ▸ ϑϩϯτίϯτϩʔϥʔ ͱݺ͹ΕΔαʔϒϨοτ ͕શͯͷϦΫΤετΛड ͚औΓɺ֤ίϯτϩʔϥʔ ʹॲཧΛৼΓ෼͚Δ 49 ϑϩϯτ ίϯτϩʔϥʔ ʢαʔϒϨοτʣ ίϯτ ϩʔϥʔ ίϯτ ϩʔϥʔ ίϯτ ϩʔϥʔ ϦΫΤετ ※ϑϨʔϜϫʔΫ ಺ͷΫϥε ϦϑϨΫγϣϯΛ ࢖͍ͬͯΔʢޙड़ʣ

Slide 50

Slide 50 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 छྨͷ8FCϑϨʔϜϫʔΫ ᶃΞΫγϣϯϕʔε
 ϑϨʔϜϫʔΫ ▸ αʔϒϨοτɾ+41ͱ ΄΅ಉ͡ײ֮Ͱϓϩά ϥϜΛ࡞੒͢Δ ▸ +BWBͰ͸ଟ਺೿ ▸ 4QSJOH.7$ɺ4USVUT ͕୅දྫ 50 ೖྗը໘ ݁Ռը໘ ίϯτϩʔϥʔ

Slide 51

Slide 51 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 छྨͷ8FCϑϨʔϜϫʔΫ ᶄίϯϙʔωϯτϕʔε
 ϑϨʔϜϫʔΫ ▸ /&5΍"OESPJEͳͲ(6* ΞϓϦͱಉ͡ײ֮Ͱϓ ϩάϥϜΛ࡞੒͢Δ ▸ +BWBͰ͸গ਺೿ ▸ +4'͕୅දྫ 51 ೖྗը໘ ೖྗ߲໨1 ೖྗ߲໨2 ೖྗ߲໨3 όοΩϯά Ϗʔϯ String input1; String input2; String input3;

Slide 52

Slide 52 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ೖྗνΣοΫػೳ ▸ ΄΅શͯͷϑϨʔϜϫʔ ΫͰɺೖྗνΣοΫػ ೳ͕ఏڙ͞Ε͍ͯΔ ▸ ӈͷίʔυ͸
 #FBO7BMJEBUJPOͷྫ ▸ 4QSJOH.7$Ͱ΋+4' Ͱ΋࢖͑Δ 52 public class InputForm { @NotNull @Size(min = 1, max = 10) private String input1; @NotNull @Max(99) private Integer number; // setter/getterলུ }

Slide 53

Slide 53 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 Ϗϡʔ͸ʁ ▸ 4QSJOH.7$΍4USVUTͰ͸+41͕σϑΥϧτ
 ˠϏϡʔʹϩδοΫ͕ࠞࡏͰ͖Δ໰୊
 ˠ࠷ۙͰ͸୅ΘΓʹ5IZNFMFBG͕Α͘࢖ΘΕΔ ▸ +4'Ͱ͸طʹ+41͕ඇਪ঑
 ˠ'BDFMFUTͱ͍͏ผͷϏϡʔٕज़Λ࢖͍ͬͯΔ 53

Slide 54

Slide 54 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 /PNPSF+41 ▸ ࠷ۙͰ͸ɺ+41͸ੵۃతʹ࠾༻͞Εͳ͍܏޲ ▸ ϏϡʔͱϩδοΫ͕ࠞࡏͰ͖ͯ͠·͏ ▸ σϑΥϧτͰ͸ΤεέʔϓॲཧΛ͠ͳ͍ͨΊɺ
 ΫϩεαΠτεΫϦϓςΟϯά੬ऑੑ͕ى͖΍͍͢ ▸ ग़ྗ͢Δ෦෼͸શͯDPVUͰॻ͔ͳ͍ͱ੬ऑੑʹͳΔ ▸ ৄࡉ͸ʮΫϩεαΠτεΫϦϓςΟϯάʯͰάάͬͯͩ͘ ͍͞ 54

Slide 55

Slide 55 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 03Ϛούʔͱ͸ʁ ▸ %#ΞΫηεΛ؆୯ʹॻ͚ΔϥΠϒϥϦ ▸ +%#$Ͱ਺ेߦͷϓϩάϥϜ͕ɺ΋ͷͷ਺ߦʹʂ ▸ େ͖͘෼͚ͯλΠϓɻϝϦοτɾσϝϦοτΛߟ͑ͯ࠾༻͠·͠ΐ͏ʂ 55 ೖྗը໘ ݁Ռը໘ ίϯτϩʔϥʔ DAO ΤϯςΟ ςΟ DB ORϚούʔͷൣғ

Slide 56

Slide 56 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 λΠϓᶃڱٛͷ03Ϛούʔ ▸ ࠷΋ϓϩάϥϜ͕୹͘ॻ͚Δ ▸ 42-͢Βॻ͔ͳ͍ ▸ ͨͩ͠ɺͦͷ෼͚ͩ։ൃऀ͔Β ݟ͑ͳ͍෦෼΋ଟ͘ɺϋϚΓͲ ͜Ζ͸ଟ͍ ▸ Ұൠతʹɺਖ਼نԽ͞Ε͍ͯͳ͍ %#ʹ͸޲͔ͳ͍ͱ͞Ε͍ͯΔ ▸ ୅දྫɿ+1"ɺ)JCFSOBUF 56 // JPAͷྫ EntityManager em = …; Employee employee = em.find(Employee.class, 101); ϦϑϨΫγϣϯΛ ࢖͍ͬͯΔʢޙड़ʣ

Slide 57

Slide 57 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 λΠϓᶄ42-Ϛούʔ ▸ 42-ΛςΩετϑΝΠϧ΍ 9.-ʹॻ͘ ▸ ෳࡶͳ+0*/ɺ෭໰͍߹Θ ͤɺΠϯσοΫεͷ׆༻΋ Մೳ ▸ ࡞੒͢΂͖ϑΝΠϧ͸ɺڱٛ ͷ03ϚούʔΑΓଟ͘ͳΔ ▸ ୅දྫɿ.Z#BUJTɺ%PNB 57 EmployeeDao dao = …; Employee employee = dao.findById(101); // Domaͷྫ @Dao public interface EmployeeDao { Employee findById(int id); } SELECT id, name, joined_date, department_id FROM employee WHERE id = /*id*/999

Slide 58

Slide 58 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 λΠϓᶅλΠϓηʔϑܕ ▸ Ϋϥε΍ϝιουΛར༻ ͯ͠42-Λ૊ΈཱͯΔ ▸ จࣈྻΛॻ͔ͳ͍ͨΊɺه ड़ϛεʹΑΔ࣮ߦ࣌ྫ֎͕ গͳ͘ͳΔ ▸ هड़ྔ͸͔ͳΓ૿͑Δ ▸ ୅දྫɿ2VFSZ%4-ɺ K002ɺ%#'MVUF 58 // QueryDSLͷྫ QCustomer c = new QCustomer("c"); SQLTemplates dialect = …; SQLQuery> query = …; List lastNames = query .select(c.lastName) .from(c) .where(c.firstName.eq("Bob")) .fetch(); https://github.com/querydsl/querydsl/tree/master/querydsl-sql ͔ΒҾ༻

Slide 59

Slide 59 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ίϯςφͱ͸ʁ ▸ ίϯτϩʔϥʔͱ%"0ʢ·ͨ͸Ϗδωεϩδο Ϋʣͷ઀ଓΛ୲౰͢Δ 59 ೖྗը໘ ݁Ռը໘ ίϯτϩʔϥʔ DAO ΤϯςΟ ςΟ DB DIίϯςφͷൣғ

Slide 60

Slide 60 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ͱ͸ʁ 60 // DAOΠϯλϑΣʔε public interface EmployeeDao { Employee findById(int id); } // DAOΠϯλϑΣʔεͷ࣮૷Ϋϥε public class EmployeeDaoImpl implements EmployeeDao { @Override public Employee findById(int id) { // ORϚούʔͰDBΞΫηε͢Δ } }

Slide 61

Slide 61 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ͱ͸ʁ 61 // DIΛ࢖͍ͬͯͳ͍ίϯτϩʔϥʔΫϥε public class EmployeeController { public String findById(int id) { EmployeeDao dao = new EmployeeDaoImpl(); Employee employee = dao.findById(id); // ը໘ʹϑΥϫʔυ } }

Slide 62

Slide 62 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ͱ͸ʁ 62 // DIΛ࢖͍ͬͯΔίϯτϩʔϥʔΫϥε public class EmployeeController { @Inject EmployeeDao dao; public String findById(int id) { Employee employee = dao.findById(id); // ը໘ʹϑΥϫʔυ } } EmployeeDaoImplͷ Πϯελϯε͕ ࣗಈతʹ୅ೖ͞ΕΔ ϦϑϨΫγϣϯΛ ࢖͍ͬͯΔʢޙड़ʣ

Slide 63

Slide 63 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ͷԿ͕خ͍͔͠ʁ ▸ ୯ମςετ͕΍Γ΍͘͢ͳΔʂ ▸ ίϯτϩʔϥʔΫϥεͷ୯ମςετ࣌ʹɺ
 &NQMPZFF%BPͷԾͷΫϥεʢʹελϒɺϞοΫʣʹ ࠩ͠ସ͑͠΍͘͢ͳΔ ▸ %*Λ࢖͍ͬͯͳ͍৔߹ɺඞͣ&NQMPZFF%BP*NQMΫϥ ε͕ඞཁʹͳΔͨΊɺࠩ͠ସ͑͸ࠔ೉ 63

Slide 64

Slide 64 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ԾͷΫϥεΛར༻ͨ͠୯ମςετ 64 // DAOΠϯλϑΣʔεͷελϒʢςετ༻ͷԾΫϥεʣ public class StubEmployeeDao implements EmployeeDao { @Override public Employee findById(int id) { // ୯७ͳݻఆ஋Λฦ͢ͷΈ Employee emp = new Employee(); emp.setId(id); emp.setName("ࢁాଠ࿠"); emp.setDepartmentId(10); emp.setJoinedDate(LocalDate.of(2016, 12, 3)); return emp; } }

Slide 65

Slide 65 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ελϒΛར༻ͨ͠ίϯτϩʔϥʔͷ୯ମςετ 65 // JUnitͰͷྫ public class EmployeeControllerTest { @Test public void test_findById() { EmployeeController controller = new EmployeeController(); // DAOϑΟʔϧυʹελϒΛ୅ೖ controller.dao = new StubEmployeeDao(); // ίϯτϩʔϥʔϝιουͷςετ String viewName = controller.findById(101); assertThat(viewName, is("index")); } }

Slide 66

Slide 66 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ຊ൪؀ڥͰ͸ʁ ▸ &NQMPZFF%BP*NQMͷΠϯελϯε͕ࣗಈతʹ୅ ೖ͞ΕΔ ▸ %FQFOEFODZ*OKFDUJPOʢґଘੑͷ஫ೖʣ
 ʹΠϯελϯεͷ୅ೖ 66

Slide 67

Slide 67 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 %*ίϯςφͷ΋ͬͱৄ͍͜͠ͱ͸ ▸ ͜ͷ෦԰ͷ࣍ͷηογϣϯ
 ʮ4QSJOH͸Ͳ͏΍ͬͯ%*͍ͯ͠Δͷ͔ʯ
 ΁Ͳ͏ͧʂ 67

Slide 68

Slide 68 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ຊষͷ·ͱΊ ▸ 8FCϑϨʔϜϫʔΫͰ.7$ΛΩονϦ෼͚Δʂ ▸ ͨͩ͠ɺ+41͸ଔۀ͠Α͏ ▸ 03ϚούʔͰ%#ΞΫηεΛ؆ܿʹॻ͘ʂ ▸ λΠϓͷͲΕ͕ࣗ෼ͷϓϩδΣΫτʹ߹͏͔ߟ͑Α͏ ▸ %*ίϯςφͱΠϯλϑΣʔεΛ׆༻ͯ͠ɺ
 ςετ͠΍͍͢ߏ଄Λ࡞Δʂ 68

Slide 69

Slide 69 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 69

Slide 70

Slide 70 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 αʔϒϨοτ͸ͳͥಈ͘ʁ ▸ αʔϒϨοτΫϥεΛ࡞ͬͯɺXFCYNMʹΫϥε໊ Λॻ͚ͩ͘ ▸ NBJO ϝιου͸࡞Βͳ͍ 70

Slide 71

Slide 71 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ΞϓϦέʔγϣϯαʔόʔ͕΍͍ͬͯΔ͜ͱ ▸ ΞϓϦέʔγϣϯαʔόʔͷىಈࣗମ͕
 NBJO ϝιουͷ࣮ߦͱߟ͑Ε͹ྑ͍ ▸ ΞϓϦέʔγϣϯαʔόʔ͸ɺ ᶃXFCYNMΛಡΈࠐΜͰαʔϒϨοτΫϥε໊Λऔಘ͢Δ ᶄΫϥε໊͔ΒαʔϒϨοτͷΠϯελϯεΛੜ੒͢Δ ᶅΠϯελϯεͷEP(FU EP1PTU Λ࣮ߦ͢Δ 71

Slide 72

Slide 72 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ΞϓϦέʔγϣϯαʔόʔ͕΍͍ͬͯΔ͜ͱ 72 †startup.bat ≒mainϝιουىಈ HelloServlet com.example.HelloServlet HelloServlet /hello ᶃweb.xmlಡΈࠐΈ ᶃ’ Ϋϥε໊औಘ αʔϒϨοτ Πϯελϯε ᶄੜ੒ ᶅdoGet/doPost ※࣮ࡍʹ͸ɺΫϥΠΞϯτ͔ΒͦͷαʔϒϨοτ΁ͷॳճϦΫΤετ͕͋ͬͨ࣌ʹɺαʔϒϨοτΠϯελϯε͕ੜ੒͞Ε·͢

Slide 73

Slide 73 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϦϑϨΫγϣϯͱ͸ʁ ▸ Ϋϥε໊΍ϝιου໊͔ΒɺΠϯελϯεੜ੒ ΍ϝιου࣮ߦΛߦ͏࢓૊Έ 73 ”com.example.HelloServlet” HelloServletͷ Πϯελϯε

Slide 74

Slide 74 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϦϑϨΫγϣϯͷαϯϓϧίʔυ 74 // HelloServletΫϥεΛද͢ClassΠϯελϯεͷऔಘ Class klass = Class.forName("com.example.HelloServlet"); // HelloServletΫϥεͷҾ਺ͳ͠ίϯετϥΫλͷऔಘ Constructor constructor = klass.getConstructor(); // औಘͨ͠ίϯετϥΫλΛར༻ͯ͠ΠϯελϯεΛੜ੒ Object servlet = constructor.newInstance();

Slide 75

Slide 75 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϦϑϨΫγϣϯͷαϯϓϧίʔυ 75 // HelloServletΫϥεͷdoGet()ϝιουΛऔಘ Method method = klass.getMethod("doGet", String.class); // doGet()ϝιουͷ࣮ߦ Object returnValue = method.invoke(servlet, "hoge"); // doGet()ϝιουͷ໭Γ஋Λදࣔ System.out.println(returnValue);

Slide 76

Slide 76 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϦϑϨΫγϣϯ͕࢖ΘΕ͍ͯΔॴ ▸ 8FCϑϨʔϜϫʔΫɺ%*ίϯςφɺ03Ϛούʔ ͸ɺϦϑϨΫγϣϯΛϑϧ׆༻͍ͯ͠Δ ▸ Πϯελϯεͷੜ੒ ▸ ϝιουͷ࣮ߦ
 ɾɾɾͳͲ 76

Slide 77

Slide 77 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 Ξϊςʔγϣϯͷऔಘ ▸ 8FCϑϨʔϜϫʔΫɺ%*ίϯςφɺ03Ϛούʔ Ͱ͸Ξϊςʔγϣϯ͕ଟ༻͞ΕΔ ▸ ϦϑϨΫγϣϯͱซͤͯ࢖ΘΕΔ͜ͱ͕ଟ͍ 77

Slide 78

Slide 78 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 +1"ΤϯςΟςΟͷྫ 78 @Entity // ΤϯςΟςΟΫϥεͰ͋Δ͜ͱΛࣔ͢ @Table(name = "employee") // ରԠ͢Δςʔϒϧ໊ public class EmployeeEntity { @Id // ओΩʔͰ͋Δ͜ͱΛࣔ͢ private Integer id; @Column(name = "emp_name") // ྻ໊͕"emp_name" private String name; // getter/setter͸লུ

Slide 79

Slide 79 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 Ϋϥεʹ෇͍͍ͯΔΞϊςʔγϣϯͷऔಘ 79 Class klass = (Class) Class.forName("com.example.Employee"); // EntityΞϊςʔγϣϯͷऔಘ Entity entity = klass.getAnnotation(Entity.class); if (entity != null) { System.out.println("͜ͷΫϥε͸ΤϯςΟςΟͰ͢"); } // TableΞϊςʔγϣϯͷऔಘ Table table = klass.getAnnotation(Table.class); System.out.println("ςʔϒϧ໊͸" + table.name());

Slide 80

Slide 80 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϑΟʔϧυʹ෇͍͍ͯΔΞϊςʔγϣϯͷऔಘ 80 Field[] fields = klass.getDeclaredFields(); for (Field field : fields) { String fieldName = field.getName(); Column column = field.getAnnotation(Column.class); String columnName = column.name(); System.out.println(fieldName + "ͷྻ໊͸" + columnName); Id id = field.getAnnotation(Id.class); if (id != null) { System.out.println(fieldName + "͸ओΩʔͰ͢"); } }

Slide 81

Slide 81 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͦͷଞͷ৔ॴͷΞϊςʔγϣϯͷऔಘ ▸ ϝιουɺϝιουҾ਺ͳͲʹ෇͍͍ͯΔΞ ϊςʔ γϣϯ΋औಘͰ͖Δ 81

Slide 82

Slide 82 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ຊষͷ·ͱΊ ▸ Ϋϥε໊΍ϝιου໊ͷจࣈྻ͔ΒɺΠϯελϯ εੜ੒΍ϝιου࣮ߦ͕Ͱ͖Δʂ ▸ ΫϥεɾϝιουɾϑΟʔϧυͳͲʹ෇͍͍ͯΔ ΞϊςʔγϣϯΛऔಘͰ͖Δʂ ▸ 8FCϑϨʔϜϫʔΫɾ%*ίϯςφɾ03Ϛούʔ ͸ɺϦϑϨΫγϣϯ΍ΞϊςʔγϣϯͰ࡞ΒΕͯ ͍Δʂ 82

Slide 83

Slide 83 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 83

Slide 84

Slide 84 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϩάͱ͸ʁ ▸ γεςϜͷʮه࿥ʯΛग़ྗͨ͠΋ͷ ▸ ͍ͭɺͲΜͳॲཧΛͨ͠ͷ͔ʁ ▸ τϥϒϧ࣌ʹ͸ϩά͕།ҰͷཔΓʹͳΔ 84

Slide 85

Slide 85 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͳͥϩΪϯάϥΠϒϥϦΛ࢖͏ͷʁ 4ZTUFNPVUQSJOUMO ͡Όμϝʁ ᶃϩάͷϨϕϧΛઃఆͰ͖Δ ▸ ։ൃ؀ڥͰ͸શϩάΛग़ྗɺຊ൪؀ڥͰ͸*/'0ϨϕϧҎ ্ͷΈग़ྗɺͱ͔ ᶄ౷Ұͨ͠ϑΥʔϚοτΛࢦఆͰ͖Δ ▸ ʮ<೥݄೔࣌෼ඵϛϦඵ><Ϋϥε໊>ϝοηʔδʯͱ͔ ᶅϑΝΠϧ΁ͷग़ྗ΍ɺผαʔόʔ΁ͷసૹͳͲ͕Ͱ ͖Δ 85

Slide 86

Slide 86 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 -PHCBDLͱ͸ ▸ ΦʔϓϯιʔεͷϩΪϯάϥΠϒϥϦ ▸ ݱࡏͰ͸൪ϝδϟʔ 86

Slide 87

Slide 87 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 -PHCBDLͷϩάϨϕϧ ▸ ઃఆϑΝΠϧʹࢦఆͨ͠ϨϕϧҎ্ͷΈग़ྗ͞ΕΔ 87 ߴ ௿ ✦FSSPSʜΤϥʔ ✦XBSOʜܯࠂ ✦JOGPʜ௨ৗ ✦EFCVHʜσόοά ✦USBDFʜৄࡉͳτϨʔε

Slide 88

Slide 88 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 MPHCBDLYNM ▸ ϩάϨϕϧ΍ϑΥʔϚοτΛࢦఆ͢Δ 88 logback-sample/testFile.log true %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n

Slide 89

Slide 89 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϩΨʔͷऔಘͱϩάͷग़ྗ 89 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SampleService { private static final Logger LOGGER = LoggerFactory.getLogger(SampleService.class); public void doSomething() { LOGGER.trace("This is trace log."); LOGGER.debug("This is debug log."); LOGGER.info("This is info log."); LOGGER.warn("This is warn log."); LOGGER.error("This is debug log."); } } logback.xmlʹࢦఆͨ͠ ϨϕϧҎ্ͷΈ ग़ྗ͞ΕΔ Ϋϥεͷ׬શम০໊͕ ϩΨʔͷ໊લͱͳΔ

Slide 90

Slide 90 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ग़ྗ͞ΕͨϩάϑΝΠϧ 90 2016-12-02 15:03:17.868 INFO com.example.service.SampleService - This is info log. 2016-12-02 15:03:17.868 WARN com.example.service.SampleService - This is warn log. 2016-12-02 15:03:17.868 ERROR com.example.service.SampleService - This is debug log. ▸ MPHCBDLYNMʹࢦఆͨ͠ ▸ ϨϕϧҎ্ͷΈग़ྗ͞ΕΔ ▸ ϝοηʔδͷϑΥʔϚοτͰग़ྗ͞ΕΔ

Slide 91

Slide 91 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͦͷଞͷͰ͖Δ͜ͱ ▸ ೔͝ͱʹϩάϑΝΠϧΛ෼͚Δ ▸ ʮϩʔϦϯάʯͱݺ͹ΕΔػೳ ▸ Ϋϥε΍ύοέʔδʹΑͬͯϨϕϧ΍ग़ྗઌΛ ෼͚Δ ▸ ϩΨʔͷ໊લʹΑΔ਌ࢠؔ܎Ͱࢦఆ 91

Slide 92

Slide 92 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ΋ͬͱৄ͍͜͠ͱ͸ ▸ ٶ઒͞Μͷࢿྉ΁ʂ ▸ IUUQXXXTMJEFTIBSFOFUNJZBLBXBUBLVDPODFQUTBOEUPPMTPG MPHHJOHJOKBWB 92

Slide 93

Slide 93 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ᶃ ৽ਓݚमͰڭ͑Δ+BWBɺڭ͑ͳ͍+BWB ᶄ ϥΠϒϥϦΛ؆୯ʹ࢖͓͏ʂϏϧυπʔϧ.BWFO ᶅ 8FCࡾछͷਆثʂ8FCϑϨʔϜϫʔΫɾ
 %*ίϯςφɾ03Ϛούʔ ᶆ ϑϨʔϜϫʔΫͷ࢓૊ΈΛ஌Ζ͏ʂ
 ϦϑϨΫγϣϯͱΞϊςʔγϣϯ ᶇ τϥϒϧγϡʔςΟϯάʹඞਢʂ
 ϩΪϯάϥΠϒϥϦ-PHCBDL ᶈ ͜Ε͔ΒͲ͏ֶश͢Δ͔ʁ 93

Slide 94

Slide 94 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ࢢൢॻ੶Λ͔ͬ͠Γษڧ͢Δ ▸ +BWBͷจ๏ 94 ▸ 8FCͷجૅ ▸ +BWB4&
 ͷ৽ػೳ

Slide 95

Slide 95 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ࢿ֨Λ໨ඪʹ͢Δ ▸ 0$+1(PMEɺ0$+8$ ▸ ೥໨ͷऴΘΓ·Ͱʹ͸औΓ͍ͨ 95

Slide 96

Slide 96 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ֤छϑϨʔϜϫʔΫ 96 ▸ 4QSJOH'SBNFXPSL·ͨ͸+BWB&&

Slide 97

Slide 97 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϑϨʔϜϫʔΫͷ࢓૊Έ ▸ ϦϑϨΫγϣϯ΍Ξ ϊςʔγϣ ϯɺϑϨʔϜϫʔΫͷ࢓૊Έ ʹ͍ͭͯৄ͘͠ࡌ͍ͬͯΔ 97

Slide 98

Slide 98 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ϒϩάɺεϥΠυɺษڧձ ▸ ++6(φΠτηϛφʔʹߦ͖·͠ΐ͏ʂ ▸ ൃද͍ͯ͠Δਓୡͷϒϩά΍εϥΠυΛνΣο Ϋʂ 98

Slide 99

Slide 99 text

(C) CASAREAL, Inc. All rights reserved. #ccc_f1 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ 99 Enjoy Java!!