S2JDBC-Genã§ãã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°
ãã®ã¨ã³ããªã§ã¯ãS2JDBC-Genã使ã£ã¦æ軽ã«ãã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãããæ¹æ³ãç´¹ä»ãã¾ããS2JDBC-Genã¯ãJavaã³ã¼ãï¼S2JDBCã®ã¨ã³ãã£ãã£ï¼ã®ä¿®æ£ããã¼ã¿ãã¼ã¹ã¹ãã¼ãã«åæ ããããã¼ã«ã§ãã
S2JDBC-Genã®å®è¡ã«å¿
è¦ãªåä½ç°å¢ã¯ãEclipseãã©ã°ã¤ã³ã®Doltengã使ãã¨ç°¡åã«ç¨æã§ãã¾ããEclipseã¯ãã¼ã¸ã§ã³3.4ãDoltengã¯æ¨æ¥ãªãªã¼ã¹ãããã°ããã®0.33.0ã使ãã¾ãã
é·ããªããããã®ã§è¦åºããããã
- Doltengã®ã¤ã³ã¹ãã¼ã«
- Doltengããã¸ã§ã¯ãã®ä½æ
- Antã®ã³ã³ã½ã¼ã«ã¨ã³ã³ã¼ãã£ã³ã°ã®è¨å® ï¼Windowsä¸ã§Eclipse3.4ãåããå ´åã«ã ãå¿ è¦ï¼
- H2ã®èµ·åã¨ãã¼ã¿ã®ç¢ºèª
- ãã¼ã¿ãã¼ã¹ããã¨ã³ãã£ãã£ã®çæ
- ã¨ã³ãã£ãã£ããDDLã¨ãã³ããã¼ã¿ã®çæ
- DBãªãã¡ã¯ã¿ãªã³ã°ï¼æ°ããªã«ã©ã ã®å°å ¥ï¼
- DBãªãã¡ã¯ã¿ãªã³ã°ï¼ã«ã©ã åã®å¤æ´ï¼
- DBãªãã¡ã¯ã¿ãªã³ã°ã®ã³ã
- ããããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãã¯ãããã
è¦åºã
- Doltengã®ã¤ã³ã¹ãã¼ã«
- Doltengããã¸ã§ã¯ãã®ä½æ
- Antã®ã³ã³ã½ã¼ã«ã¨ã³ã³ã¼ãã£ã³ã°ã®è¨å® ï¼Windowsä¸ã§Eclipse3.4ãåããå ´åã«ã ãå¿ è¦ï¼
- H2ã®èµ·åã¨ãã¼ã¿ã®ç¢ºèª
- ãã¼ã¿ãã¼ã¹ããã¨ã³ãã£ãã£ã®çæ
- ã¨ã³ãã£ãã£ããDDLã¨ãã³ããã¼ã¿ã®çæ
- DBãªãã¡ã¯ã¿ãªã³ã°ï¼æ°ããªã«ã©ã ã®å°å ¥ï¼
- DBãªãã¡ã¯ã¿ãªã³ã°ï¼ã«ã©ã åã®å¤æ´ï¼
- DBãªãã¡ã¯ã¿ãªã³ã°ã®ã³ã
- ããããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãã¯ãããã
Doltengã®ã¤ã³ã¹ãã¼ã« â
ã¾ãã¯ãDoltengãã¤ã³ã¹ãã¼ã«ãã¾ããããDoltengã®ä»ã«ã便å©ãªæ©è½ãæã¤DbLauncharã¨ResourceSynchronizerããã£ããã«ã¤ã³ã¹ãã¼ã«ãã¾ããã¤ã³ã¹ãã¼ã«ããã«ã¯ãã¡ãã¥ã¼ã®ãHelpã-ãSoftware Updatesãããè¡ãã¾ãããAdd Siteããã¿ã³ã§ http://eclipse.seasar.org/updates/3.2/ 㨠http://eclipse.seasar.org/updates/3.3/ ã追å ããã¤ã³ã¹ãã¼ã«ãããããã¯ããé¸ã³ã¾ãã
Doltengã¯ä¸¡æ¹ã®ãµã¤ãã«è¡¨ç¤ºããã¾ãããhttp://eclipse.seasar.org/updates/3.3/ ã®ä¸ã«è¡¨ç¤ºãããDoltengãé¸æãã¾ããDoltengããã¸ã§ã¯ãã®ä½æ â
Doltengã®ã¤ã³ã¹ãã¼ã«ãçµãã£ãããã¡ãã¥ã¼ã®ãFileã-ãNewã-ãProjectãã¨é¸æããããã¸ã§ã¯ãä½æã®ãã¤ã¢ãã°ãéãã¾ãã
Dolteng Projectãé¸æãã¾ããããã¨æ¬¡ã®ãã¤ã¢ãã°ãéãã¾ããPresentationã«ãSAStrutsããPersistenceã«ãS2JDBCããé¸ã¶ã®ããã¤ã³ãããFinishããã¿ã³ãæ¼ãã¨ããã¸ã§ã¯ããçæããã¾ããããã¸ã§ã¯ãã®ç´ä¸ã«ãs2jdbc-gen-build.xmlããå«ã¾ãã¦ãããã¨ã«æ³¨ç®ãã¦ãã ãããS2JDBC-Genã¯ãã®ãã«ããã¡ã¤ã«ããèµ·åãã¾ããAntã®ã³ã³ã½ã¼ã«ã¨ã³ã³ã¼ãã£ã³ã°ã®è¨å® ï¼Windowsä¸ã§Eclipse3.4ãåããå ´åã«ã ãå¿ è¦ï¼ â
Windowsã®Eclipse3.4ä¸ã§Antãåããå ´åã®ã¿ã§ãããã³ã³ã½ã¼ã«ã¨ã³ã³ã¼ãã£ã³ã°ãè¨å®ããªãã¨ãæ¥æ¬èªãã³ã³ã½ã¼ã«ã«è¡¨ç¤ºããã¾ãããæååããã¦åºåããããªãã¾ã ããã®ã§ãããä½ãåºåãããªãã®ã§ãåãã¦ããã®ãã©ããããããªããªã£ã¦ãã¾ãã®ã§ããå°ã£ããã®ã§ã><ãWindowsã使ã£ã¦ããªãã£ããEclipse3.4ã使ã£ã¦ããªãã£ããããå ´åã¯èªã¿é£ã°ãã¦ãã ããã
ã¾ãããs2jdbc-gen-build.xmlããå³ã¯ãªãã¯ãããRun asã-ãExternal Tools Configurationsããé¸æãã¾ãã
次ã«ãå·¦å´ã®ããªã¼ã®ãAnt Buildããããã«ã¯ãªãã¯ãããå·¦ä¸é ã®ã¢ã¤ã³ã³ãæ¼ãæ°è¦ã®è¨å®ãä½æãã¾ããæ°è¦ã®è¨å®ãã§ãããããTargetsãã¿ã°ãé¸ã³ããgen-entityãã®ã¿ã«ãã§ãã¯ãã¤ããä¸çªä¸ã®Nameã®å ¥åé ç®ã§ããããããååã«å¤æ´ãã¾ããããããããCommonãã¿ã°ãé¸ã³ããConsole Encodingãã§ãMS932ããé¸æãã¾ããæå¾ã«ãApplyããã¿ã³ãæ¼ãã¾ããããã§ããgen-entityãã¿ã¼ã²ããã«ã¤ãã¦ã¯ãè¨å®ãå®äºã§ããããã¾ã§ã®ä½æ¥ãããã¹ã¦ã®ã¿ã¼ã²ããã«å¯¾ãã¦è¡ãã¾ããå·¦å´ã®ããªã¼ã®ãAnt Buildããããã«ã¯ãªãã¯ãããå·¦ä¸é ã®ã¢ã¤ã³ã³ãæ¼ãã¨ããããå§ãã¦ãã ããããs2jdbc-gen-build.xmlãã«ã¯3ã¤ã®ã¿ã¼ã²ãããè¨å®ããã¦ããã®ã§ãæçµçã«ã¯ãããªãã¾ãã
H2ã®èµ·åã¨ãã¼ã¿ã®ç¢ºèª â
DbLauncharã§H2ãã¼ã¿ãã¼ã¹ãèµ·åãã¾ããèµ·åããã«ã¯ãããã¸ã§ã¯ããå³ã¯ãªãã¯ãã¡ãã¥ã¼ãããH2ã-ãStart H2 Serverããé¸ã³ã¾ãã
ã³ã³ã½ã¼ã«ã«TCP server running on tcp://localhost:9092 (only local connections) Web server running on http://localhost:8082 (only local connections)
ã¨è¡¨ç¤ºãããã°OKã§ãã
次ã«ãã¼ã¿ãã¼ã¹ã®ä¸èº«ã確èªãã¾ããããã¸ã§ã¯ããå³ã¯ãªãã¯ãã¡ãã¥ã¼ãããH2ã-ãView Database Serverãã¨é¸ã³ã¾ãã
ãã¼ã¿ãã¼ã¹ããã¨ã³ãã£ãã£ã®çæ â
ã§ã¯ãS2JDBC-Genã®æ©è½ãã¤ãã£ã¦ãã¼ã¿ãã¼ã¹ããã¨ã³ãã£ãã£ãçæãã¾ããããã¾ãã¯ãã¡ãã¥ã¼ãããWindowã-ãViewã-ãAntãã¨ããAnt Viewãéãã¾ããããããã¦ãAnt Viewã«ãs2jdbc-gen-build.xmlãããã©ãã° & ãããããã¾ãã
Ant Viewã§gen-entityã¿ã¼ã²ãããé¸æããç·ã®å®è¡ã¢ã¤ã³ã³ãæ¼ãã¨ãã³ã³ã½ã¼ã«ã«gen-entityã¿ã¼ã²ãããå®è¡ãããã¨ã示ããã°ãåºåããã¾ããæçµçã«ãBUILD SUCCESSFULãã¨è¡¨ç¤ºãããã°æåã§ããã½ã¼ã¹ãã©ã«ããè¦ãã¨ã¨ã³ãã£ãã£ããµã¼ãã¹ã®ã¯ã©ã¹ãçæããã¦ãããã¨ããããã¾ããï¼ResourceSynchronizerãã¤ã³ã¹ãã¼ã«ãã¦ããªãå ´åã¯ãããã¸ã§ã¯ããé¸æãF5ãæ¼ããªã©ãã¦ãªãã¬ãã·ã¥ããªãã¨ã表示ããã¾ããï¼
ã¡ãªã¿ã«ãS2JDBC-Genã§ã¯ããã¼ã¿ãã¼ã¹ããã®ã¨ã³ãã£ãã£ã®çæã¯æåã®ä¸åº¦ã ãã®ã¿è¡ããã¨ãæ³å®ãã¦ãã¾ãããã®ãããGeneration Gapãã¿ã¼ã³ã¯æ¡ç¨ãã¦ãã¾ãããã¨ã³ãã£ãã£çæå¾ã¯ãã¨ã³ãã£ãã£ã®ä¿®æ£ããã¼ã¿ãã¼ã¹ã«åæ ãããã¨ãããã¨ãç¹°ãè¿ããã¨ã«ãªãã®ã§å¿ è¦ãªãã®ã§ãã
ãã¼ã¿ãã¼ã¹ã®ä¿®æ£ãã¨ã³ãã£ãã£ã«åæ ããããã¨ãç¹°ãè¿ããªããéçºããããå ´åã¯ãS2JDBC-GenãããDBFluteãå©ç¨ããããã¨ãã奨ããã¾ããDBFluteã®éçºè
ãä¹
ä¿ããã®èããåèã«ãªãã¨æãã¾ããhttp://d.hatena.ne.jp/jflute/20080907/1220778306
ã¨ã³ãã£ãã£ããDDLã¨ãã³ããã¼ã¿ã®çæ â
ã¨ã³ãã£ãã£ãçæããããã¨ããããDDLãçæãã¾ãããããããDBãªãã¡ã¯ã¿ãªã³ã°ããã¦ããã¾ããããã®ã¾ãã«DDLãçæãã¦ããã¨ããªãã¡ã¯ã¿ãªã³ã°ãçµãã£ããã¨ã§ãã£ã¦ãå¿
è¦ã§ããã°ä¿®æ£åã®ç¶æ
ã«æ»ããã¨ãã§ãã¾ãã
DDLã¨ãã³ããã¼ã¿ãçæããã«ã¯ãAnt Viewããgen-ddlã¿ã¼ã²ãããå®è¡ãã¾ããå®è¡ããã¨ãããã¸ã§ã¯ãã®ç´ä¸ã«dbã¨ãããã£ã¬ã¯ããªãä½æããããã®ä¸ã«DDLããã³ããã¼ã¿ãçæããã¾ãã
DBãªãã¡ã¯ã¿ãªã³ã°ï¼æ°ããªã«ã©ã ã®å°å ¥ï¼ â
æ°ããã«ã©ã ã追å ãã¦ã¿ã¾ããããããã§ã¯ãEMPãã¼ãã«ã«AGEã¨ããå¹´é½¢ã表ãã«ã©ã ã追å ãã¾ãã
EMPãã¼ãã«ã«å¯¾å¿ããã¯ã©ã¹ã¯Empã§ãã®ã§ãã¾ãã¯Empã¯ã©ã¹ã«æ¬¡ã®ããããã£ã追å ãã¾ãã
@Column(precision = 3, nullable = true, unique = false) public Integer age;
次ã«ãAnt Viewããgen-ddlã¿ã¼ã²ãããå®è¡ãã¾ãã0002ãã£ã¬ã¯ããªãæ°ããä½æããã¾ãã
DDLã確èªãã¦ã¿ã¾ãããã0002/create/010-table/emp.sqlãéãã¾ãã
create table EMP ( ID bigint generated by default as identity, EMP_NO integer not null, EMP_NAME varchar(20), AGE integer, -- ããï¼ MGR_ID integer, HIREDATE date, SAL decimal(7,2), DEPT_ID integer, VERSION_NO integer, constraint EMP_PK primary key(ID) );
ã¡ããã¨AGEã«ã©ã ã追å ããã¦ãã¾ãã
ããããããã¼ã¿ã¯ã©ãã§ããããï¼0002/create/040-dump/emp.csvãéãã¾ãã
å½ç¶ãªããAGEã®åã空ã§ããï¼ä¸ã®ç»åã¯CSVã¨ãã£ã¿ã®Cassava Editorã§csvãã¡ã¤ã«ãéããã¨ããã§ããCassava Editorã¯ãCSVã®é²è¦§ãç·¨éã«ã¨ã¦ã便å©ã§ããS2JDBC-Genã«é©ããCassava Editorã®ã奨ãã®è¨å®æ¹æ³ã«ã¤ãã¦ã¯ãããã¥ã¡ã³ããåç §ãã¦ãã ããï¼
ããã§ã¯ãCassava Editorã®æ©è½ã使ã£ã¦é©å½ã«é£çªãæ¯ã£ã¦ãã¾ãã¾ãããã
DDLã¨CSVã®ãã¼ã¿ãå®éã«ãã¼ã¿ãã¼ã¹ã«åæ ãããã«ã¯ãAnt Viewããmigrateã¿ã¼ã²ãããå®è¡ãã¾ããmigrateãçµãã£ãããH2ã®ã³ã³ã½ã¼ã«ã§ãSELECT * FROM EMPããå®è¡ãã¦ããªãã¡ã¯ã¿ãªã³ã°ãæåãã¦ãããè¦ã¦ã¿ã¾ãããã
ã¡ããã¨AGEã«ã©ã ã追å ããããã¼ã¿ãå ¥ã£ã¦ãã¾ããã©ãã§ãããï¼ç°¡åã§ããï¼DBãªãã¡ã¯ã¿ãªã³ã°ï¼ã«ã©ã åã®å¤æ´ï¼ â
ä»åº¦ã¯ãã«ã©ã åãå¤æ´ãã¦ã¿ã¾ããããããã§ã¯ãEMPãã¼ãã«ã®EMP_NAMEã«ã©ã ãNAMEã«ã©ã ã«å¤æ´ãã¾ãã
ãã£ãããEmpã¯ã©ã¹ã®empNameããããã£ãnameããããã£ã«ä¿®æ£ãã¾ãã
@Column(length = 20, nullable = true, unique = false) //public String empName; public String name;
次ã«ãAnt Viewããgen-ddlã¿ã¼ã²ãããå®è¡ãã¾ãã0003ãã£ã¬ã¯ããªãæ°ããä½æããã¾ãã
DDLã確èªãã¦ã¿ã¾ãããã0003/create/010-table/emp.sqlãéãã¾ãã
create table EMP ( ID bigint generated by default as identity, EMP_NO integer not null, NAME varchar(20), -- ããï¼ AGE integer, MGR_ID integer, HIREDATE date, SAL decimal(7,2), DEPT_ID integer, VERSION_NO integer, constraint EMP_PK primary key(ID) );
ã¡ããã¨EMP_NAMEã«ã©ã ãNAMEã«ã©ã ã«ãªã£ã¦ãã¾ããã
ããããããã¼ã¿ã¯ã©ãã§ãããã0003/create/040-dump/emp.csvãéãã¾ãã
ããã§ãDDLã®å¤æ´ã¨ãã¼ã¿ã®èª¿æ´ã¯çµããã§ãã®ã§ãAnt Viewããmigrateã¿ã¼ã²ãããå®è¡ãã¾ããæå¾ã«ãH2ã®ã³ã³ã½ã¼ã«ã§ãSELECT * FROM EMPããå®è¡ãã¦ããªãã¡ã¯ã¿ãªã³ã°ãæåãã¦ããã確èªãã¦ã¿ã¾ãããã
Goodï¼EMP_NAMEã«ã©ã ãNAMEã«ã©ã ã«ãªã£ã¦ããã¼ã¿ãå ¥ã£ã¦ãã¾ãããããç°¡åã§ããã
DBãªãã¡ã¯ã¿ãªã³ã°ã®ã³ã â
ã³ã¼ãã®ãªãã¡ã¯ã¿ãªã³ã°ãããã§ãããDBãªãã¡ã¯ã¿ãªã³ã°ãå°ãã1ã¤ãã¤è¡ã£ãæ¹ãç°¡åã§ããä¸ã§ãæ°ããªã«ã©ã ã®å°å ¥ãã¨ãã«ã©ã åã®å¤æ´ãã®2ã¤ã®ä¾ããã£ã¦ã¿ã¾ãããããã¨ãã°ããããåæã«ããã®ã¯å±éºã§ããã¨ã³ãã£ãã£ã®ä¿®æ£ãgen-ddlãmigrateã®ãµã¤ã¯ã«ã¯å°ãããã¦ãã§ããã°ãmigrateã®å¾ã«ã¯ãã¹ããåããåä½ç¢ºèªããã®ãããã¨æãã¾ãã
SVNãªã©ã使ã£ã¦è¤æ°äººã§éçºããã¨ãã¯ãèªåã®ç°å¢ã§migrateã¨ãã®ãã¹ããçµãã£ã¦ããã³ãããããããã«ãã¾ããä»ã®äººã¯ãsvn updateã§æ°ããã³ã¼ãã¨DDLã¨CSVãåãè¾¼ãã§migrateããã ãã§ææ°ã®ç°å¢ã«ãªãã¾ãã
ããããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãã¯ãããã â
Javaã³ã¼ããããã¼ã¿ãã¼ã¹ã¹ãã¼ãããªãã¡ã¯ã¿ãªã³ã°ããææ³ã¯å¾æ¥ã®æ¹æ³ã¨ç°ãªãã®ã§æåã¯éåæãè¦ããããããã¾ããããå®éã«ä½¿ã£ã¦ã¿ãã¨ãã³ãããéçºã§ããã¨æãã¾ãã
質åãããããªãã¨ãããããã°ããã®ããã°ã«ã³ã¡ã³ããããMLã«æ稿ãã¦ãã ããããæ°è»½ã«ã©ããã¼ã
ãã¨ãã¾ã ã¾ã ã§ããããã¥ã¡ã³ãã以åããã¯å
å®ããã¦ããã®ã§ãã¡ããåèã«ãã¦ãã ããã
http://s2container.seasar.org/2.4/ja/s2jdbc_gen/index.html