DBからのリバース
エンティティつくるの面倒だなあとか書いてたら、「2005年のはぶにっき」で親切にもSQL・プロシージャで楽をする方法をとりあげていただいてしまい、恐縮。そういう手がありますね。
さらにコメント欄を見ているとS2DAOMakerってDBからのリバースもできるようですね(エクセル設定ファイルからの自動生成だけかと思ってました)。
さっそく、このへんを参考にやってみることに。ダウンロードして展開、VelocityとPOI、JDBCをlibに追加します。設定ファイルres/setting.xmlをDBにあわせて修正。
んで、ant reverseを、えいっ、実行。
C:\S2DaoMaker>ant reverse Buildfile: build.xml compile: reverse: [java] 2005/03/30 10:23:24 cx.ath.mof.s2daomaker.DBReverseMakeExcel main [java] 情報: DBリバース開始・・・ [java] java.lang.IllegalArgumentException: Sheet name cannot be blank, greater than 31 chars, or contain any of /\*?[] [java] at org.apache.poi.hssf.record.BoundSheetRecord.setSheetname(BoundSheetRecord.java:175) [java] at org.apache.poi.hssf.model.Workbook.setSheetName(Workbook.java:458) [java] at org.apache.poi.hssf.usermodel.HSSFWorkbook.setSheetNameHSSFWorkbook.java:269) [java] at cx.ath.mof.s2daomaker.AbstractMakeExcel.makeExcel(AbstractMakeExcel.java:65) [java] at cx.ath.mof.s2daomaker.AbstractMakeExcel.make(AbstractMakeExcel.java:26) [java] at cx.ath.mof.s2daomaker.DBReverseMakeExcel.main(DBReverseMakeExcel.java:47) [java] Exception in thread "main" BUILD FAILED C:\S2DaoMaker\build.xml:45: Java returned: 1 Total time: 10 seconds
あれ? なんでやろ? テーブル名空欄なわけないし、31文字もないはずなんだけどな、それともへんな文字使ってるんだろか?