Home » Java, Programing » Teeda + DBFlute環境でバッチ作成

Check     このエントリーをはてなブックマークに追加

現在、Teeda + DBFluteな環境で、Webアプリを製作中なわけですが、DBを更新する処理とかのバッチ作成する時って、どこにソースを配置すべきなんでしょう。

考えた末、、Webアプリと混在する環境に置く事に。

teeda-batch

javaのソースディレクトリにbatchっていうのを作って、そこにmain関数を書いてしまう。
そして、ソースはこんな感じで。


[java]
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
import sample.dbflute.exbhv.MemberBhv;
import sample.dbflute.exentity.Member;

public class Main {
private static final String S2PATH = “dbflute.dicon”;

public static void main(String[] args) {
S2Container container = S2ContainerFactory.create(S2PATH);
container.init();
try {
MemberBhv memberBhv
= (memberBhv)container.getComponent(MemberBhv.class);
final Member member = new Member();
member.setId(1);
member.setName(“name”);
memberBhv.insert(member);

} catch (Exception e) {
e.printStackTrace();
} finally {
container.destroy();
}
}
}
[/java]
S2Containerを呼び出し、Behaviorを作成。Behaviorを通して簡単なinsert処理を。
これで完了。

いちおう、Container経由でWebで作ったロジックもちゃんと呼べたりもしますし、DBFluteの便利なBehaviorやConditionBeanも呼び出せるので、これでええかなと。

しかし、調べてみるといろいろ意見があったりしてます。
https://ml.seasar.org/archives/seasar-user/2007-August/011996.html

最適な解は何なんでしょう。

Check     このエントリーをはてなブックマークに追加
タグ: ,
  • tommy

    very good,thank you!

  • tommy

    very good,thank you!

  • http://d.hatena.ne.jp/jflute/ jflute

    かなり遅れてのコメントで恐縮ですが、
    自分はWEBプロジェクトとBatchプロジェクトを
    Eclipseのプロジェクトとして分けていました。
    (Teeda + DBFluteで)

    - Common (共通モジュール)
    - Dao (DBFluteで生成したクラスなど)
    - Web
    - Batch

    というような感じで、
    WebはDaoとCommonを参照。
    BatchもDaoとCommonを参照。

    DBFluteで作ったクラスはWebとBatchで再利用します。

    実際には、WEBは管理用・消費者用・携帯用と3つに
    わかれていたり、再利用ロジック専用のプロジェクトが
    あったりともっと複雑でしたが。。。
    ただ、こうやって細かく分けるとデプロイはとても面倒になります。
    (Mavenと相性が悪かったり)

  • http://d.hatena.ne.jp/jflute/ jflute

    かなり遅れてのコメントで恐縮ですが、
    自分はWEBプロジェクトとBatchプロジェクトを
    Eclipseのプロジェクトとして分けていました。
    (Teeda + DBFluteで)

    - Common (共通モジュール)
    - Dao (DBFluteで生成したクラスなど)
    - Web
    - Batch

    というような感じで、
    WebはDaoとCommonを参照。
    BatchもDaoとCommonを参照。

    DBFluteで作ったクラスはWebとBatchで再利用します。

    実際には、WEBは管理用・消費者用・携帯用と3つに
    わかれていたり、再利用ロジック専用のプロジェクトが
    あったりともっと複雑でしたが。。。
    ただ、こうやって細かく分けるとデプロイはとても面倒になります。
    (Mavenと相性が悪かったり)

  • ueblog

    jfluteさん、コメントいただきありがとうございます!
    DBFluteの作者様に直接コメントいただけるなんて恐縮です。。。

    なるほど、daoや共通モジュールもプロジェクトとして分けるとすっきりしそうですね。

    参考にさせていただきます。

  • ueblog

    jfluteさん、コメントいただきありがとうございます!
    DBFluteの作者様に直接コメントいただけるなんて恐縮です。。。

    なるほど、daoや共通モジュールもプロジェクトとして分けるとすっきりしそうですね。

    参考にさせていただきます。