Slide 1

Slide 1 text

Z#BUJT ࣮ફ .

Slide 2

Slide 2 text

4ZTUFN"SDIJUFDU 4ZTUFN"SDIJUFDU +BWB !T@LP[BLF 8IPBN*

Slide 3

Slide 3 text

8IPBN*ʁ

Slide 4

Slide 4 text

ࠓ೔ͷ໨త https://flic.kr/p/23R1Tx

Slide 5

Slide 5 text

.Z#BUJTͱ͸ https://flic.kr/p/4ms8ZA

Slide 6

Slide 6 text

.Z#BUJTͷجຊ https://flic.kr/p/gaBFBV

Slide 7

Slide 7 text

࠷৽.Z#BUJT https://flic.kr/p/TeA7eF

Slide 8

Slide 8 text

ݱ৔ͷ޻෉ https://flic.kr/p/tKFgm

Slide 9

Slide 9 text

͜Ε͔Β࢝ΊΔʹ͸ https://flic.kr/p/qskbe

Slide 10

Slide 10 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸

Slide 11

Slide 11 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸

Slide 12

Slide 12 text

.Z#BUJTJT 42-.BQQFS

Slide 13

Slide 13 text

03. .Z#BUJT NBQQJOH 42- NBQQJOH

Slide 14

Slide 14 text

௕͍ྺ࢙ https://flic.kr/p/egva6V

Slide 15

Slide 15 text

೥ J#BUJT ೥ J#BUJT ⬇ .Z#BUJT .Z#BUJT .Z#BUJT ೥ .Z#BUJT ೥ .Z#BUJT ೥ ࠷৽7FS͸ ࣌఺

Slide 16

Slide 16 text

ւ֎Ͱ͸͋·Γ ࢖ΘΕ͍ͯͳ͍ʁ

Slide 17

Slide 17 text

+)JQTUFSͬͯ.Z#BUJTαϙʔτ͠ͳ͍ͷʁ )JCFSOBUF+1"Ҏ֎αϙʔτ͠ͳ͍Αʁ ͦ͏ͳΜɻ͡Ό͋উखʹ΍ΔΘɻ νʔϜʹ+1"ͷεΩϧͳ͍ͶΜɻ ͔ͯͳΜͰ.Z#BUJTɻ ਺೥લʹࢮΜͩͱࢥͬͯͨʁ https://github.com/jhipster/generator-jhipster/issues/1252 ͷͱ͋Δձ࿩

Slide 18

Slide 18 text

͍ͭ࢖͏ͷʁ

Slide 19

Slide 19 text

ɾෳࡶͳσʔλϞσϧͷ৔߹ ɾνʔϜͷεΩϧηοτʹԠͯ͡ ɾσʔλϕʔεػೳΛϑϧ׆༻͍ͨ͠

Slide 20

Slide 20 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸

Slide 21

Slide 21 text

.Z#BUJT ઃఆϑΝΠϧ 9.- .BQQFSఆٛ 9.- NBQQFST .Z#BUJTͷಈ࡞ΛΧελϚΠζ ͢ΔͨΊͷઃఆ΍ϓϩύςΟ σʔλιʔεͷઃఆ΍ϓϥάΠϯͷઃ ఆͳͲͳͲ 42-Λ9.-Ͱఆٛ͢Δɻ ʮ.Z#BUJT͸9.-Ͱ42-ॻ͔ͳ͍ ɹͱ͍͚ͳ͍ͷ͕ʙ SZʯ ͱ͔ݴΘΕΔͷ͕͜ͷϑΝΠϧ

Slide 22

Slide 22 text

.Z#BUJT ઃఆϑΝΠϧ 9.- .BQQFSఆٛ 9.- NBQQFST : select * from city where id = #{id}

Slide 23

Slide 23 text

.Z#BUJT ઃఆϑΝΠϧ 9.- .BQQFSఆٛ 9.- .BQQFS ΠϯλϑΣʔε NBQQFST &OUJUZ 42-ͷ݁Ռηοτͱ Ϛοϐϯά͢Δ+BWBιʔεɻ ओʹςʔϒϧͷϨίʔυͷ ৘ใΛอ࣋͢Δɻ 42-ఆٛΛϚοϐϯά͢Δ ΠϯλϑΣʔεɻ

Slide 24

Slide 24 text

.Z#BUJT ઃఆϑΝΠϧ 9.- .BQQFSఆٛ 9.- .BQQFS ΠϯλϑΣʔε NBQQFST &OUJUZ public interface CityMapper { City selectCityById(long id); } public class City { private Long id; private String name; private String state; private String country; : }

Slide 25

Slide 25 text

4RM4FTTJPO 'BDUPSZ #VJMFS .Z#BUJT ઃఆϑΝΠϧ 9.- 4RM4FTTJPO 'BDUPSZ 4RM4FTTJPO .BQQFSఆٛ 9.- .BQQFS ΠϯλϑΣʔε CVJME PQFO4FTTJPO HFU.BQQFS NBQQFST SFBE &OUJUZ

Slide 26

Slide 26 text

4RM4FTTJPO 'BDUPSZ #VJMFS .Z#BUJT ઃఆϑΝΠϧ 9.- 4RM4FTTJPO 'BDUPSZ 4RM4FTTJPO .BQQFSఆٛ 9.- .BQQFS ΠϯλϑΣʔε CVJME PQFO4FTTJPO HFU.BQQFS NBQQFST SFBE &OUJUZ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); try { CityMapper mapper = session.getMapper(CityMapper.class); City city = mapper.selectCityById(1); : } finally { session.close(); }

Slide 27

Slide 27 text

΋ͬͱ؆୯ʹ https://flic.kr/p/pzJusn

Slide 28

Slide 28 text

42-͸Ξϊςʔγϣϯ Ͱ΋ॻ͚Δ

Slide 29

Slide 29 text

.BQQFS ΠϯλϑΣʔε &OUJUZ public interface CityMapper { @Select("select * from city where id = #{id}") City selectCityById(long id); }

Slide 30

Slide 30 text

NBQQFSͷઃఆ͸ QBDLBHFࢦఆͰ͖Δ

Slide 31

Slide 31 text

.Z#BUJT ઃఆϑΝΠϧ 9.- :

Slide 32

Slide 32 text

4RM4FTTJPO.BOBHFS Λ࢖ͬͯ4RM4FTTJPO ͷҾ͖ճ͠Λճආʂ

Slide 33

Slide 33 text

4RM4FTTJPO 'BDUPSZ #VJMFS .Z#BUJT ઃఆϑΝΠϧ 9.- 4RM4FTTJPO 'BDUPSZ 4RM4FTTJPO .BQQFSఆٛ 9.- .BQQFS ΠϯλϑΣʔε CVJME PQFO4FTTJPO HFU.BQQFS NBQQFST SFBE &OUJUZ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSessionManager session = SqlSessionManager.newInstance(sqlSessionFactory); session.startManagedSession(); try { CityMapper mapper = session.getMapper(CityMapper.class); City city = mapper.selectCityById(1); : } finally { session.close(); }

Slide 34

Slide 34 text

΍ͬͺΓ ΊΜͲ͏͍͘͞ʁ ??

Slide 35

Slide 35 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸

Slide 36

Slide 36 text

ɾ4QSJOHͰఆٛͨ͠σʔλιʔεΛར༻Ͱ͖Δɻ ɾ4QSJOHͷτϥϯβΫγϣϯ੍ޚΛར༻Ͱ͖Δɻ ɾఆܕతͳॳظԽϩδοΫ͕ෆཁɻ ɾ4QSJOH͕ఏڙ͢ΔσʔλΞΫηεྫ֎΁ͷม׵ɻ ɾFUD

Slide 37

Slide 37 text

+%,1SPYZ +%,1SPYZ .BQQFS 'BDUPSZ#FBO 4RM4FTTJPO 'BDUPSZ 4RM4FTTJPO 5FNQMBUF .Z#BUJT ઃఆϑΝΠϧ 9.- .BQQFS ΠϯλϑΣʔε PQFO4FTTJPO 4RM4FTTJPO 4RM4FTTJPO 'BDUPSZ#FBO 4RM4FTTJPO 'BDUPSZ #VJMEFS SFBE CVJME

Slide 38

Slide 38 text

+%,1SPYZ +%,1SPYZ .BQQFS 'BDUPSZ#FBO 4RM4FTTJPO 5FNQMBUF .BQQFS ΠϯλϑΣʔε PQFO4FTTJPO 4RM4FTTJPO 4RM4FTTJPO 'BDUPSZ#FBO 4RM4FTTJPO'BDUPSZ#VJMEFS Λ༻͍ͯ4RM4FTTJPO'BDUPSZ ͷ#FBOΛੜ੒ɻ %*ίϯςφ্ʹ#FBOԽ͞Εͨ σʔλιʔεΛΠϯδΣΫγϣϯɻ 4RM4FTTJPO 'BDUPSZ 4RM4FTTJPO 'BDUPSZ #VJMEFS CVJME .Z#BUJT ઃఆϑΝΠϧ 9.- SFBE

Slide 39

Slide 39 text

+%,1SPYZ 4RM4FTTJPO 'BDUPSZ .Z#BUJT ઃఆϑΝΠϧ 9.- PQFO4FTTJPO 4RM4FTTJPO 4RM4FTTJPO 'BDUPSZ#FBO 4RM4FTTJPO 'BDUPSZ #VJMEFS SFBE CVJME +%,1SPYZ .BQQFS 'BDUPSZ#FBO 4RM4FTTJPO 5FNQMBUF .BQQFS ΠϯλϑΣʔε .BQQFSΦϒδΣΫτΛ ੜ੒͠ɺ%*ίϯςφʹ #FBOొ࿥ 4QSJOHͷτϥϯβΫγϣϯ؅ཧԼ Ͱ42-Λ࣮ߦ͢Δ࢓૊ΈΛఏڙɻ

Slide 40

Slide 40 text

ɾࣗಈίϯϑΟΪϡϨʔγϣϯʹΑͬͯɹ ɹ4RM4FTTJPO'BDUPSZ#FBO΍4RM4FTTJPO5FNQMBUF ɹͷ#FBOఆ͕ٛࣗಈղܾʂʂ

Slide 41

Slide 41 text

.Z#BUJTXJUI4QSJOH#PPU JT$PPMʂ https://flic.kr/p/bdCH5D

Slide 42

Slide 42 text

https://start.spring.io/

Slide 43

Slide 43 text

@Mapper public interface CityMapper { @Select("select * from city where id = #{id}") City selectCityById(long id); } public class City { : } @SpringBootApplication public class DemoApplication implements CommandLineRunner { final private CityMapper mapper; public DemoApplication(CityMapper mapper) { this.mapper = mapper; } public static void main(String... args) { SpringApplication.run(DemoApplication.class, args); } public void run(String... args) throws Exception { City city = mapper.selectCityById(1); : } }

Slide 44

Slide 44 text

@Mapper public interface CityMapper { @Select("select * from city where id = #{id}") City selectCityById(long id); } public class City { : } @SpringBootApplication public class DemoApplication implements CommandLineRunner { final private CityMapper mapper; public DemoApplication(CityMapper mapper) { this.mapper = mapper; } public static void main(String... args) { SpringApplication.run(DemoApplication.class, args); } public void run(String... args) throws Exception { City city = mapper.selectCityById(1); : } } ͨͬͨ͜Ε͚ͩʂ

Slide 45

Slide 45 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸ ͜Ε·Ͱ ͜Ε͔Β

Slide 46

Slide 46 text

5ZQF)BOEMFS

Slide 47

Slide 47 text

public interface TypeHandler { void setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType) throws SQLException; T getResult(ResultSet rs, String columnName) throws SQLException; T getResult(ResultSet rs, int columnIndex) throws SQLException; T getResult(CallableStatement cs, int columnIndex) throws SQLException; } ɾ1SFQBSFE4UBUFNFOUͷύϥϝʔλʔΛηοτ͢Δͱ͖ɺ ɹ͋Δ͍͸3FTVMU4FU͔Β஋Λऔಘ͢Δͱ͖ʹɺ ɹඞͣͦͷ+BWBλΠϓʹରԠ͢Δ5ZQF)BOEMFS͕࢖༻͞ΕΔɻ ɾඪ४ͷλΠϓϋϯυϥʔΛΦʔόʔϥΠυͨ͠Γɺ ɹࣗΒ࡞੒ͨ͠λΠϓϋϯυϥʔΛ࢖ͬͯະରԠ͋Δ͍͸ ɹඇඪ४ͷܕΛѻ͏͜ͱ΋Մೳɻ

Slide 48

Slide 48 text

ɾʙʢνϧμʣͳͲͷจࣈԽ͚ରԠ ɾ֎ࣈΛྨࣅจࣈʹม׵ 4USJOH5ZQF)BOEMFSΛΦʔόϥΠυͯ͠ ࣍ͷ໰୊ʹରॲ GPS"OESPJE

Slide 49

Slide 49 text

.Z#BUJT(FOFSBUPS

Slide 50

Slide 50 text

ιʔείʔυ .Z#BUJT(FOFSBUPS ઃఆϑΝΠϧ

Slide 51

Slide 51 text

ɾطଘ%#ͷϝλσʔλ͔Β.BQQFSιʔε ɹΛࣗಈੜ੒ ɾ.Z#BUJT(FOFSBUPSͷ1MVHJOΛ࡞੒ͯ͠ ɹ৭ʑʢΦϨΦϨʣͱޮ཰Խ ɾ࣌ʹ͸ຊମʹ΋खΛೖΕΔΑʂ

Slide 52

Slide 52 text

: public List selectByNameAndState() { return query() .where() .nameEqualTo("sakai") .and() .stateEqualTo("osaka") .orderBy("id desc") .fetch(); } ಠࣗʢΦϨΦϨʣ1MVHJOͰྲྀΕΔΑ͏ͳ"1* ͰΫΤϦΛ͔͚Δ޻෉Λͨ͠Γ͍ͯ͠·͢ɻ

Slide 53

Slide 53 text

ࣗಈੜ੒ιʔε͸ઈରʹ खमਖ਼͠ͳ͍͜ͱʂ

Slide 54

Slide 54 text

ςʔϒϧͷ ϦϨʔγϣϯ

Slide 55

Slide 55 text

ɾ/ʴ̍໰୊ ɾू໿ͷ୯ҐͲ͏͢Δʁ ɾෳ߹ओΩʔʹର͢Δରॲ ςʔϒϧͷϦϨʔγϣϯ؅ཧ͸େม ɾϑΣονઓུʢ&BHFSPS-B[Zʣ

Slide 56

Slide 56 text

7JFX΍42-ͰؤுΔʂ ͜͜Βล͸αʔϏε΍νʔϜಛੑʹԠͯ͡ ܾΊ·͠ΐ͏ʙ

Slide 57

Slide 57 text

ιʔείʔυ .Z#BUJT(FOFSBUPS 42-ϑΝΠϧ WJFX ɾ7JFX΋͘͠͸42-ͷ݁Ռηοτͷϝλσʔλ͔Βιʔείʔυ ɹΛࣗಈੜ੒ ɾ42-ͷ݁Ռηοτ͔Βͷࣗಈੜ੒͸ಠࣗʢΦϨΦϨʣ1MVHJO

Slide 58

Slide 58 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸ ͜Ε·Ͱ ͜Ε͔Β

Slide 59

Slide 59 text

+43

Slide 60

Slide 60 text

+43ʹରԠͨ͠5ZQF)BOEMFS͕༻ҙ͞Ε͍ͯΔɻ ੵۃతʹऔΓࠐΜͰ͍͖͍ͨɻ

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

3FQPTJUPSZ

Slide 63

Slide 63 text

%PNBJO0CKFDU PS 4FSWJDF .BQQFS 3FQPTJUPSZ Ͱ͸ͳ͘ %PNBJO0CKFDU PS 4FSWJDF .BQQFS ͜͏͍ͨ͠

Slide 64

Slide 64 text

ɾ3FBDUJWF1SPHSBNNJOH ɾ&DMJQTF$PMMFDUJPOT ΫΤϦͷ݁ՌΛ4USFBNͱͯ͠ѻ͍͍ͨɻ 3Y+BWB PS3FBDUPS औΓ૊ΜͰ͍͖͍ͨʂ

Slide 65

Slide 65 text

"HFOEB .Z#BUJTXJUI4QSJOH .Z#BUJTͷجຊ .Z#BUJTͱ͸ ݱ৔ͷ޻෉ ͜Ε͔Β࢝ΊΔʹ͸

Slide 66

Slide 66 text

http://qiita.com/opengl-8080/items/a9b5d4038f19d4813ee6

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

http://qiita.com/kazuki43zoo/items/ea79e206d7c2e990e478

Slide 69

Slide 69 text

http://www.mybatis.org/mybatis-3/ja/index.html

Slide 70

Slide 70 text

·ͱΊ

Slide 71

Slide 71 text

ɾ4QSJOH#PPUͱ࢖͏ͱָνϯ ɾطଘ%#͕͋Δ৔߹͸(FOFSBUPSͷ׆༻Λ ɾ42-ϕʔεͰγεςϜ։ൃ͍ͨ͠৔߹͸Ͳ͏ͧʂ

Slide 72

Slide 72 text

5IBOLZPV GPSZPVSMJTUFOJOH https://flic.kr/p/TqScXB