ãã®æçš¿ã«ã€ããŠ
- ããã¯ãçµéšãåãèªæžã®æç€ºã«åºã¥ããŠãèè ãç¥ã£ãŠããããŒã¿ã¢ãã«ç®¡çãªãã·ã§ã³ã®äºåŸã¬ãã¥ãŒã§ãã
- ãã®æçš¿ã¯ãæ¢åã®ããŒã¿ã¢ãã«ç®¡çãªãã·ã§ã³ãåé¡ãã詊ã¿ã§ããããŸãã
- æåŸã«ãããŒã¿ã¢ãã«ç®¡çã·ã¹ãã ã®å®è£ ã«ãããã¢ã€ãã¢ãšæåã®ã¿ããã瀺ããŸããããã«ã¯ã以åã®æ¬ ç¹ã®æ¬ ç¹ã¯å«ãŸããŸããã
å®çŸ©ãšå¶é
èªè ã¯ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã®éçºè ã§ããïŒãŸãã¯å°æ¥çã«ãªãïŒãšæ³å®ãããŠãããå€ãã®å Žåãè¿ éãã€å¹ççã«æžãå¿ èŠããããŸãããããã¡ã€ã«ã§ç¹ã«çްãå Žæã埮調æŽãããããã«JPA / JTA / RMIã®ãžã£ã³ã°ã«ã«å ¥ãããšãæããŠããŸããã
ããŒã¿ã¯ãã¢ããªã±ãŒã·ã§ã³ããŒã¿ããŒã¹ã«ä¿åããããã®ã§ãã 顧客ããŠãŒã¶ãŒã泚æãªã©ã«é¢ããããŒã¿
ã¡ã¿ããŒã¿-ããŒã¿æ§é ã®èª¬æã ããŒã¿ããŒã¹ã«ä¿åãããŠãããªããžã§ã¯ãã®ã¿ã€ãã®èª¬æããªããžã§ã¯ããæã£ãŠãããã£ãŒã«ãïŒå±æ§ãèŠçŽ ïŒããªããžã§ã¯ãéã®äŸåé¢ä¿ã®èª¬æã äžè¬ã«ãã¿ã€ãã¯èŠªã¿ã€ãã®å±æ§ãç¶æ¿ã§ããäžè¬çãªå Žåã®1ã€ã®å±æ§ã¯ãç¶æ¿é¢ä¿ã«ãã£ãŠé¢é£ä»ããããŠããªã2ã€ä»¥äžã®ã¿ã€ãã«ååšã§ããŸãã
ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã¯ãïŒã»ãšãã©ã®å ŽåïŒApplication ServerïŒWebLogicãJBOSSïŒããã³äžéšã®RDBMSïŒOracleãInformixãMySQLïŒã䜿çšããŠæ©èœããŸãã èè ã¯ãTomcat / Hibernate / JOTM / DBCP /ãªã©ã«åºã¥ããASã®èªå·±çµç¹åã«æ¥ãã¹ãããšã¯èŠãŠããŸããããéåžžã«è峿·±ãã®ã§ããããã®ãããã¯ã®ç¯å²ãè¶ ããŠããŸãã
RDBMSã¯ãHibernate / OpenJPAã§ãµããŒããããŠããæšæºã®1ã€ã§ãããšæ³å®ãããŠããŸãã
ãã®ãããã¯ã§ã¯ãXMLã¹ããŒãã®åå空éãã¿ã€ãã屿§ã®çšèªã䜿çšããŠããŸãã åŸè ã®2ã€ã¯ãããçšåºŠJavaã¯ã©ã¹ïŒã¯ã©ã¹ãªããžã§ã¯ãããã³ïŒãšããããã£ïŒããããã£ãå¥åget + setãæã«ã¯ãã£ãŒã«ãããã£ãŒã«ãïŒã®æŠå¿µã«å¯Ÿå¿ããŠããŸãã
ã¯ããã« æãåçŽãªã±ãŒã¹
å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³-ã»ãšãã©ã®å Žåããããã¯å€§éã®ããŒã¿ãæã€ã¢ããªã±ãŒã·ã§ã³ã ãã§ã¯ãããŸããã å€ãã®å Žåããããã¯ãããžãã¹ããžãã¯ã®èгç¹ãšã¯ç°ãªãæ§é ãæã€ã倿°ã®ç°çš®ããŒã¿ãæ±ãã¢ããªã±ãŒã·ã§ã³ã§ãã ïŒã¡ãªã¿ã«ãæåŸã¯éèŠã§ã-ããŒã¿æ§é ã¯ãDBMSã¬ãã«ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ãããã«ã¯å éšã§ç°ãªãå ŽåããããŸãïŒ
æãåçŽãªã±ãŒã¹ã¯ãã¯ã©ã¹ã®ã»ãããšããŒã¿ããŒã¹å ã®å¯Ÿå¿ããããŒãã«ã®ã»ããã®åœ¢åŒã§ã®ããŒã¿ã¢ãã«ã®å®çŸ©ã§ãã 倧ãŸãã«èšããšã1ã€ã®ã¯ã©ã¹ã¯ããŒã¿ããŒã¹å ã®odeããŒãã«ã§ãã ãªããžã§ã¯ãã®åããããã£ã¯ãBeanã¯ã©ã¹ã®ããããã£ãšããŒã¿ããŒã¹ã®åã§è¡šãããŸãã ãã ãããã®ãããªã¡ã«ããºã ã«ã¯ããšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ãéçºããã³äœ¿çšãããšãã«çŸããæ¬ ç¹ããããŸãã
- ããŒã¿ã¢ãã«ã远å ãŸãã¯å€æŽããã«ã¯ãããŒã¿ããŒã¹ã®æ§é ãšããã°ã©ã ã³ãŒãã®äž¡æ¹ã倿Žãããã®åŸã«åã³ã³ãã€ã«ãªã©ãè¡ãå¿ èŠããããŸãã
- ãã®çµæããããå³åº§ã«è¡ãããšã¯ã§ããŸããã
- åã¿ã€ããã芪ã¿ã€ããžã®å±æ§ã®è»¢éãªã©ã®è€éãªå€æŽããããŒã¿ããŒã¹æ§é ãæŽæ°ããããã«æåã¹ã¯ãªããïŒDDL + DMLïŒãæžãå¿ èŠããããŸãã
- æ§é ã倿Žããã«ã¯ãSQL / Javaã®å°éç¥èãå¿ èŠã§ã
ãã ãããã®ã¢ãããŒãã®å©ç¹ã«æ³šæããå¿ èŠããããŸãã
- åªããããã©ãŒãã³ã¹ã®ããã®æé«ã®äŸ¡æ Œã æåéãããããã«äœ¿ãããæãéæãªããŒã¿ã¹ãã¬ãŒãžæ§é ãååŸããJPAã¬ã€ã€ãŒïŒäŒæ¢ç¶æ ãªã©ïŒãšRDBMSïŒããã³ãã®ç®¡çè ïŒã®äž¡æ¹ã«ãšã£ãŠæãæçœã§ãã
- ããŒã¿æ§é ã倿Žããªãããžãã¹ããžãã¯ããã°ã©ããŒã®èгç¹ããèŠããšãæã䟿å©ãªAPIãããã«äœ¿çšã§ããŸã
æåŸã®æã§éèŠãªèª¬æ-ãããžãã¹ããžãã¯ãã«æ³šç®ããŠãã ããã ããã¯ãããŒã¿æ§é ã®çžäºäœçšã®ããã»ã¹ããããã®å€æŽãªã©ã®èšè¿°ã§ããã€ãŸããããŒã¿æ§é ã«ã€ããŠç¥ã£ãŠããªããã°ãªããªãã³ãŒãã§ãã ããããããšãã°ãWEBã€ã³ã¿ãŒãã§ãŒã¹ïŒãŸãã¯ä»ã®æ¹æ³ïŒãä»ããŠBeanãç·šéããããšã«ã€ããŠè©±ããŠããå Žåããªããžã§ã¯ãã®æ§é ãäºåã«ç¥ããã«80ïŒ ãç·šéã§ãããšãã£ã¿ãŒïŒããããäžè¬åïŒãäœæããã«ã¯ã察åŠããå¿ èŠããããŸãReflection / Beans / etcãªã©ãååãšããŠãããŸãæããªãèšèã ïŒæã-ãããã¯ã®æåŸïŒã
ææ°ã®èšèšããŒã«ã䜿çšãããšãããšãã°ãã³ãŒãã«ããããŒã¿ããŒã¹æ§é ã®æŽæ°ããŸãã¯ãã®éãªã©ãããŒã¿æ§é ã®èª¬æã«åŸã£ãŠã³ãŒããçæãŸãã¯æŽæ°ããããšã«é¢é£ããããã»ã¹ã®äžéšãèªååã§ããŸãã ããããããŸããããããšãã°XMLã¹ããŒãã®åœ¢åŒã§èšè¿°ãããæœè±¡çãªããŒã¿ã¹ããŒã ã«åºã¥ããŠãã³ãŒããšããŒã¿ããŒã¹æ§é ã®äž¡æ¹ãåæã«äœæããããŒã«ããããšæããŸãã ïŒã³ãŒãã¯éåžžã«æ£ç¢ºã«çæã§ããŸã-XML Beanãªã©ãåç §ããŠãã ããïŒã ãã ãããããã®ããŒã«ã¯ãã¹ãŠãªãã©ã€ã³ã¢ãŒãã§åäœããå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯åœ±é¿ããŸããïŒãã¡ãããã©ã€ãããçŽæ¥ã¢ããã°ã¬ãŒãããå Žåãé€ããäœãèµ·ãããŸããïŒã
ãšããã§ãããã€ãã®è£å©ãŠãŒãã£ãªãã£ãäœæããŠããªããžã§ã¯ãã®ã¿ã€ãããšã«åœ¢ç¶ãæç»ã§ããŸãã
æè»ãªããŒã¿æ§é
æãæè»ãªæ§é ãèããããŸããåãªããžã§ã¯ãã¯ãXMLãªã©ã®åœ¢åŒã§ããŒã¿ããŒã¹ã«ã¬ã³ãŒããšããŠä¿åãããŸãã ã€ãŸãã2ã€ã®åãXMLã®ãªããžã§ã¯ããšãã®ã³ã³ãã³ãã®IDã§ããå€§èŠæš¡ãªããŒãã«ã§ãã åœç¶ã®ããšãªããããã®ãããªæ§é ã®äž»ãªæ¬ ç¹ã¯ãããšãã°ã¢ã¹ã¯ã¯åžã®ãã¹ãŠã®é¡§å®¢ãèšç®ããå¿ èŠããããšãã®ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãéåžžã«äœãããšã§ãã ãããè¡ãã«ã¯ãããŒã¿ããŒã¹ãåå€ãè§£æããå¿ èŠããããŸãã
æ§é ã®æè»æ§ãç¶æããããã«ãããŒã¿ããŒã¹ãžã®è² è·ãå°ãªãããããã«ããªããžã§ã¯ãã¯æçã«åå²ãããå¥ã ã®ããŒãã«ã«åãåºãããŸãã äŸãã°
-ãªããžã§ã¯ãïŒIDãå¿ é ãã£ãŒã«ã1ãå¿ é ãã£ãŒã«ã2
-å€ïŒãªããžã§ã¯ãIDã屿§èå¥åãå€
ããã«æè»æ§ãå¶éããããšãªããããŸããŸãªã¿ã€ãã®å±æ§ãããŸããŸãªããŒãã«ãŸãã¯åã«åé¢ã§ããŸãã åæ§ã®ã¹ããŒã ãã¢ããªã±ãŒã·ã§ã³ã§æ£åžžã«äœ¿çšããïŒã«ããã¢ãŠãïŒãæ°ãã©ãã€ãã®ããŒã¿ãåŠçããŸãã
ãã®ä»ã®æ¬ ç¹ïŒ
æè»æ§ã«è²»çšãããããŸãã ãŸããããŒã¿ã¬ã€ã€ãŒãåå¥ã«æžã蟌ãå¿ èŠããããŸãã æ¬¡ã«ããéãç¯çŽããããŒã¿ããŒã¹æ§é ãåæ ããããžãã¹ããžãã¯çšã®APIãæ®ããããšãã倧ããªèŠæããããŸãã
-IDãªããžã§ã¯ããªã©ãäžãã
-ãªã©ã®å±æ§IDãäžãã
-å€ãæŽæ°
-ãªã©ã®ãªããžã§ã¯ãã®å±æ§IDãæžãçããŸã
-ãªããžã§ã¯ãã®ããŒãžã§ã³ãæŽæ°ïŒ+1ïŒ
ãã¡ãããäžè¬åãããããŒã¿ãšãã£ã¿ãŒã®èгç¹ããã¯ãgetAllAttributesïŒïŒã®ãããªã¡ãœãããæã€ããšã¯éåžžã«äŸ¿å©ã§ãã ãã ããããžãã¹ããžãã¯ã®èгç¹ããã¯ãç¹ã«å¿ èŠãªå±æ§ã®IDããã¹ãŠèŠããŠããå¿ èŠãããå Žåã¯äžäŸ¿ã§ãïŒæ°å€ã§ãããŸããŸããïŒã
ãã ããAPIã¯äžè¬ã«ããŒã¿ããŒã¹ã®æ§é ãšäžèŽããå¿ èŠã¯ãªãããšã«æ³šæããŠãã ããã äž»ãªããšã¯ãã¢ã¯ã·ã§ã³ã®80ïŒ ãæãåçŽã§æãæçœãªæ¹æ³ã§å®è¡ãããããšã§ãã ã€ãŸããããŒã¿ããŒã¹ã«ã¯ã©ã€ã¢ã³ããããå Žåãã¯ã©ã€ã¢ã³ãã®ååãŸãã¯ã¢ãã¬ã¹ãååŸããã«ã¯ãclient.getAddressïŒïŒã®ãããªã³ãŒãã1è¡å¿ èŠã§ãã ãã ããæè»ãªæ§é ã®å Žåããã®ãããªã·ã§ã«ãäœæãããšããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããå¯èœæ§ããããæ¬¡ã«ãæ§é ãå€åããåŸåããããŸã
ãã ããããŒã¿ã¢ã¯ã»ã¹ããã·ãŒãžã£ã®äœæãæ åœãã人ããã®ãããªã·ã§ã«ãäœæããªãå Žåã¯ãæ°å¹Žä»¥å ã«ãå€ãã®ã€ãã·ã¢ããããã°ã©ãããæšæºãAPIã䜿çšããã®ãšåãæ°ã®ãåçŽåããããããŒã¿ã¢ã¯ã»ã¹ã·ã§ã«ã䜿çšã§ããããã«æºåããŠãã ããã
ç¡å¹åãããæ§é
ãã®ã»ã¯ã·ã§ã³ã§ã¯ã ããŸãç¥ãããŠããªãCMSã§äœ¿çšãããŠããå¥ã®ã¢ãããŒãã«ã€ããŠèª¬æããŸãã
ã³ãŒãã®èгç¹ããã¯ããªããžã§ã¯ãã®å±æ§ãžã®ã¢ã¯ã»ã¹ã¯ãæè»ãªæ§é ã®å Žåãšåãæ¹æ³ã§ãgetAttribute / getAllAttributes /ãªã©ã®ã¡ãœãããä»ããŠè¡ãããŸãã ãã ããCMSã®å Žåãäž»ãªã¿ã¹ã¯ã¯ãªããžã§ã¯ããåå¥ã«ïŒãªããžã§ã¯ãéã®é¢ä¿ãªãã«ïŒç·šéããããã«ãªããžã§ã¯ããXMLã§åºåããŠããã«åŠçããããšã§ã-ãã®APIã§ååã§ãã
è峿·±ãããšã«ãããŒã¿åã®ãªã¹ãã¯äœããã®æ§æãã¡ã€ã«ã«ä¿åãããŸãã ãŸããåã¿ã€ãã®ãã®ãã¡ã€ã«ã«ã¯ã屿§ãšãã®ã¿ã€ãã®ãªã¹ããä¿åãããŠããŸãã æ§æãã¡ã€ã«ã«åºã¥ããŠãèµ·åæã«ããŒãã«æ§é ãäœæãŸãã¯æŽæ°ãããŸãã ãã®åŸããªã³ã¶ãã©ã€ã§ãããŒã¿æ§é ã倿ŽããããšãããŒãã«ãæŽæ°ãããŸãã
é·æïŒ
-DBMSã®æçœãªããŒã¿ã¢ãã«
-ãã®å Žã§ã®æè»æ§
çæ
-ããžãã¹ããžãã¯ã®èгç¹ãããAPIã¯æè»æ§ãé«ãããŸãïŒåã®ã»ã¯ã·ã§ã³ãåç §ïŒ
-ç¬èªã®ããŒã¿ã¢ã¯ã»ã¹ã·ã¹ãã ãèšè¿°ããå¿ èŠããããŸããçŸæç¹ã§ã¯ãæ®å¿µãªãããã·ã¹ãã ãªããžã§ã¯ãïŒãŠãŒã¶ãŒãã°ã«ãŒããªã©ïŒãšã¯ç°ãªãããã©ã³ã¶ã¯ã·ã§ã³ããã£ãã·ã¥ããã®ä»ã®æ©èœã¯ç¡èŠãããŸãã
åé¡...詊è¡
ã¡ã¿ã¢ãã«ãæ€èšããŠããå Žåãããã説æããã«ã¯ã次ã®è³ªåã«çããå¿ èŠããããŸãã
- ã¢ãã«ã説æããããã®åºçºç¹ã¯äœã§ããïŒ ïŒãã¡ãããããã¯äžç¹ã§ããã¹ãã§ãïŒãªããžã§ã¯ããšãã®å±æ§ã«é¢ããæ å ±ã¯ã©ãã«ä¿åãããŸããïŒ
- ããŒã¿ããŒã¹å
ã®ããŒã¿ã¹ãã¬ãŒãžã¯ã©ã®ããã«ç·šæãããŠããŸããïŒ
- æåã®æšæºåœ¢åŒã®èŠä»¶ã¯æºããããŠããŸããïŒ
- 2ã€ã®ç°ãªãåçŽãªïŒè€æ°ã§ã¯ãªãïŒå±æ§ãä¿åãããŸãã
- 2ã€ã®ç°ãªãåã®åœ¢ã§
- 2ã€ã®ç°ãªãè¡ãšããŠ
- ããŒã¿ã¢ã¯ã»ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¬ãã«ã§ã©ã®ããã«æŽçãããŸããïŒ
- æšæºã®JPAã¡ãœããã䜿çšãããŸãïŒEntityManagerãªã©ïŒ
- ããŒã¿ã¢ã¯ã»ã¹ã¯ã©ã¹ã䜿çšãããŸã
- ããžãã¹ããžãã¯ã®ã¬ãã«ã§ããŒã¿ã¢ã¯ã»ã¹ã¯ã©ã®ããã«æŽçãããŸããïŒ
- getNameïŒïŒãgetAddressïŒïŒãªã©ã®æšæºã¡ãœããã䜿çšãããŸã
- getAttribtuteïŒID ...ïŒãªã©ã®éæšæºAPIã䜿çšãããŸã
- ããã°ã©ã ããã¡ã¿ããŒã¿ãžã®ã¢ã¯ã»ã¹ã¯ãããŸããïŒ
- ã§ãããããªãã倿Žããããšãã§ããŸã
- ããã«ãã
- Reflections / Hibernate Mapping /ãªã©ãéããŠã®ã¿
欲ããâŠèè ã«ãŽã£ãã
ããŒã¿ã¢ãã«ãèšè¿°ããã³æäœããããã®çæ³çãªïŒèè ã®èгç¹ããïŒã·ã¹ãã ã®èŠä»¶ã¯ãåã®æ®µèœããç°¡åã«å°ãåºããŸãã
-ããŒã¿æ§é ã®èª¬æã¯ããŒã¿ããŒã¹å ã«ããå¿ èŠããããŸããããã«ãããããããã¢ããªã±ãŒã·ã§ã³èªäœãä»ããŠãã¢ãã«ã®èª¬æããã°ãã倿Žã§ããŸãã
-ããŒã¿èªäœã¯ãæ£èŠåãããïŒæå€§3ã4ãã©ãŒã ïŒããŒã¿ããŒã¹ã«ä¿åããå¿ èŠããããåã¿ã€ãã«ã¯ç¬èªã®ããŒã¿ããŒãã«ããããŸãã 管çã·ã¹ãã èªäœããã¡ã¿ããŒã¿ã«åŸã£ãŠããŒã¿ããŒã¹ã¹ããŒãã管çããå¿ èŠããããŸãã
-ããŒã¿ã¢ã¯ã»ã¹ã«ã¯ãæšæºã®JPA / EntityManagerã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããå¿ èŠããããŸãã
-ããžãã¹ããžãã¯ã®èгç¹ãããã¡ã€ã³ãªããžã§ã¯ãã¿ã€ãã®ã¡ã€ã³ãã£ãŒã«ãã¯ã远å ã®è§£æ±º/ãã£ã¹ã/çµã蟌ã¿ãªãã§ïŒã€ãŸããEntityManagerããããŒãããçŽåŸã«ïŒã·ã³ãã«ãªAPIãä»ããŠã¢ã¯ã»ã¹ã§ããå¿ èŠããããŸã
-ããããã·ã¹ãã ã¯ã¡ã¿ããŒã¿ãžã®ã¢ã¯ã»ã¹ãæäŸããå¿ èŠããããŸãã ç¹å®ã®ãªããžã§ã¯ããå«ã-ãã¹ãŠã®ãã£ãŒã«ãã®ãªã¹ããååŸããŸãã
çŸåšãèè ã¯ä»¥äžã䜿çšããŠåæ§ã®ã·ã¹ãã ãäœæããŠããŸãã
-Hibernate-ããŒã¿ã¢ã¯ã»ã¹ãã©ã€ããŒãšããŠ
-CGLIB / ASM-Hibernateã®æ³šéãå«ããèšè¿°ã«åºã¥ããã¯ã©ã¹ã®åçæ§ç¯çš
-XMLã¹ããŒã-ããŒã¿åãšãã®å±æ§ãèšè¿°ãã
ããããæ¬¡åã«ã€ããŠã¯ã