DBFlute.NETを触るメモ(4) スキーマ情報の取得(jdbc.bat)
準備はできたのでDBからスキーマ情報を収集します。コマンドプロンプトを開いて「C:\DbFluteSample\HogeProject\dbflute_FirstProj」に移動します。そして、
jdbc.bat
を実行します。このバッチはデータベースに接続してテーブル定義をXML定義に出力します*1。このバッチの中身は以下の通りです。
call _project.bat
set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties
call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH%
ここでは、接続設定に従ってデータベースの定義を取得して、「C:\DbFluteSample\HogeProject\dbflute_FirstProj\schema\project-schema-FirstProj.xml」というファイルを生成します。
ここで接続するデータベースの定義は次のようになっているとします。
この場合、出力されるXMLファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE database SYSTEM "http://dbflute.sandbox.seasar.org/dtd/database.dtd"> <!-- Auto-generated by JDBCToXMLSchema! --> <database name="dbo"> <table name="書籍" schema="dbo" type="TABLE"> <column dbType="int" javaType="int?" name="Id" primaryKey="true" required="true" size="10" type="INTEGER"/> <column dbType="nvarchar" javaType="String" name="タイトル" size="50" type="VARCHAR"/> <column dbType="date" javaType="DateTime?" name="出版日" size="10" type="DATE"/> <column dbType="int" javaType="int?" name="著者ID" size="10" type="INTEGER"/> <foreign-key foreignTable="著者" name="FK_Book_Author"> <reference foreign="Id" local="著者ID"/> </foreign-key> </table> <table name="著者" schema="dbo" type="TABLE"> <column dbType="int" javaType="int?" name="Id" primaryKey="true" required="true" size="10" type="INTEGER"/> <column dbType="nvarchar" javaType="String" name="著者名" size="50" type="VARCHAR"/> <column dbType="nvarchar" javaType="String" name="住所" size="200" type="VARCHAR"/> </table> </database>
*1:このコマンドの実行結果にFailedと表示された場合は接続エラーになっていることが多いです。ここをうまく乗り越える必要があります