読者です 読者をやめる 読者になる 読者になる

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と表示された場合は接続エラーになっていることが多いです。ここをうまく乗り越える必要があります