<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000099">
    久保さん、<br>
    <br>
    メールをありがとうございます。vuhungです。<br>
    <br>
    インラインで返答させていただきます。<br>
    <br>
    (2011/03/23 14:50), kubo wrote:<br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">yomikomi.txtファイルにて
1行目:&lt;table name 1&gt;, &lt;table name 2&gt;
2行目:select文の記載
</pre>
      </blockquote>
      <pre wrap="">
の1行目のテーブル名ってそもそも必要なのでしょうか?
</pre>
    </blockquote>
    確かにデータ抽出には不要ですね。<br>
    #1行目のテーブル名は抽出したcsvファイル名に使うものです。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">2行目に実行するSQLがあるなら、それを単に実行して、
テーブル数が幾つであろうが(どんなテーブルがあろうが)、
そのSQLの結果を(select句のままに)csvファイルに
落とせば良いように思えるのですがどうなのでしょう?
</pre>
    </blockquote>
    シンプルな場合はその通りでございます。<br>
    select句を実行した結果をJava上のオブジェクトに保存しておき、csvファイルに落とす流れになります。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">
抽出だけでなく加工する必要があると書かれていますので、
その加工作業にテーブル名が必要なのでしょうか?
</pre>
    </blockquote>
    テーブル名が不要です。<br>
    <br>
    言葉足らずですが、「加工」というのは抽出した値をcsvファイルに入れる・入れない、<br>
    または日付フォーマットを変えるくらいです。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">
また、1行目に列挙するテーブル数に上限はあるのでしょうか?
</pre>
    </blockquote>
    現状では最大3テーブルまでとのことですが、<br>
    その制限をなくしたいので質問いたしました。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">以前のメールでの質問と内容が重複しますが、
基点テーブルは決まっていて、例えば「会員」、
その関連テーブルをどれだけ一緒に取得するかどうか、
が動的に変わるのでしょうか?
</pre>
    </blockquote>
    &gt;
<a class="moz-txt-link-freetext" href="http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html">http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html</a><br>
    動的に変わりません。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">それとも、基点テーブルは「会員」かもしれないし、
「購入」かもしれないし、と完全にどんなテーブルが
来るのかわからないのでしょうか?
</pre>
    </blockquote>
    その通りです。<br>
    <br>
    おっしゃっている通りに、難しそうですので、<br>
    jdbcを使うことにしました。<br>
    <br>
    宜しくお願いします。<br>
    <br>
    <blockquote
      cite="mid:AANLkTin7xqMVH=n8Hm0EpHexN4T4ykrC2wPAUH6PCkme@mail.gmail.com"
      type="cite">
      <pre wrap="">
2011/3/23 Nguyen Vu Hung (VNC) <a class="moz-txt-link-rfc2396E" href="mailto:vuhung@vinicorp.com.vn">&lt;vuhung@vinicorp.com.vn&gt;</a>:
</pre>
      <blockquote type="cite">
        <pre wrap="">金子さん、久保さん、

いつもお世話になっております。vuhungと申します。

課題の発生契機としは、複数のテーブルから、運用者が
設定可能なSELECT文をSeasarで抽出・加工し、csvファイルに落とす
夜間に実行するバッチを作成したいのです。

以前のメールで書きましたように、「SELECT文」では、1つまたは
複数のテーブルの可能性があります。

例として、

yomikomi.txtファイルにて
1行目:&lt;table name 1&gt;, &lt;table name 2&gt;
2行目:select文の記載

「yomikomi.txtファイル」ファイルはJAVAプログラマの管理対象外で、
select文のとおりにデータを抽出し、加工作業を加え、csvファイルを落とせばよいです。

厄介なのは、一行目のテーブル数がJAVA側では想定の範囲外です。

なので、外出しSQLであろが, ConditionBean(条件付きBean)であろが、
結局、形の決まったBeanにマッピングしなければならないと思っています。

</pre>
        <blockquote type="cite">
          <pre wrap="">[Seasar-user:18921] 【DBFlute】 SQL文の直接実行
<a class="moz-txt-link-freetext" href="http://ml.seasar.org/archives/seasar-user/2009-November/018922.html">http://ml.seasar.org/archives/seasar-user/2009-November/018922.html</a>
</pre>
        </blockquote>
        <pre wrap="">これは別の課題だと思います。

#もちろん、標準のjdbcを使う手はあります。

ご不明点がありましたらご連絡下さい。

宜しくお願いします。


(2011/03/22 10:05), kubo wrote:

久保(jflute)です。

こんにちは、Nguyen さん

難しい問題と思われるので、より詳しい情報を
提供して頂けると助かります。

(運用者が)SELECT文をテキストファイル記入させますが、

この点がちょっとこちらでは理解できて
いませんので、もっと詳細な説明を下さい。

これは、アプリケーションの利用者(運用者)が、
テキストファイルにSQL文(select文)を書いて、
そのSQLをアプリケーションで実行するという
ことでしょうか?

もし、そうであるならば、結合の方法以前に、
そもそもその機能をどうやって実現しようと
想定していますでしょうか?
(ConditionBean or OutsideSql?)

また、そのSQLの結果はどのような目的に
利用するのでしょうか?(画面に表示する?)

そのテーブル内のテーブル数は事前に想定できない場合は
(DBFluteのプログラマが)O/Rマッピングの対応はどうすればよいでしょうか

DBFlute の ExampleDB で例えると、

// ExampleDB | DBFlute
<a class="moz-txt-link-freetext" href="http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html">http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html</a>

検索対象が「会員」だけでなく、
「会員ステータス」を含んだり「会員退会情報」を含んだりと、
FKで結ばれる、もしくは、FKで結ぶことが可能なテーブルを
(運用者の)状況次第で動的に取得(結合)したりしなかったりする、
と考えてよろしいでしょうか?</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>