1 / 24

S2JDBC を intra-mart 上で 動かしてみた

S2JDBC を intra-mart 上で 動かしてみた. Jun Okazaki. メニュー. S2JDBC って ?( 簡単な説明 ) IM で S2JDBC を使うためには (iWP7.1) 必要な JAR をそろえる ファイルの設定 iWP7.0 利用の場合の留意点 まとめ. S2JDBC って ?( 簡単な説明 ). Seasar2 の O/R マッパー データベースプログラミングの生産性を (Java の標準 API と比較して ) 10 倍以上 早めることが目標 (Seasar Project 比 )

carla-wynn
Download Presentation

S2JDBC を intra-mart 上で 動かしてみた

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. S2JDBCをintra-mart上で動かしてみた Jun Okazaki

  2. メニュー • S2JDBCって?(簡単な説明) • IMでS2JDBCを使うためには(iWP7.1) • 必要なJARをそろえる • ファイルの設定 • iWP7.0利用の場合の留意点 • まとめ

  3. S2JDBCって?(簡単な説明) • Seasar2のO/Rマッパー • データベースプログラミングの生産性を(Javaの標準APIと比較して)10倍以上早めることが目標(Seasar Project比) • 全部説明するのは不可なので↓ (参照)http://s2container.seasar.org/2.4/ja/s2jdbc_abstract.html • 実際使用してみると,データ周りのプログラミングがすごくすっきりする

  4. S2JDBCって?(簡単な説明) 従来(ex. im-JavaEEFramework のデータフレームワーク) ・Model   ・DAOインタフェース   ・DAO Select文全件取得PreparedStatement無し S2JDBC利用 ・Model   ・DAOインタフェース

  5. S2JDBCって?(簡単な説明) 複雑な操作になってもより簡単に設定できる!! ・データ取得開始位置の設定  ・取得件数の設定         ・ResultSetとかも必要ない       ・テーブル結合も関数での定義だけ 従来(ex. im-JavaEEFramework のデータフレームワーク) ・Model   ・DAOインタフェース   ・DAO Select文全件取得PreparedStatement無し S2JDBC利用 ・Model   ・DAOインタフェース

  6. サンプル ex.Daoクラスへの記述外出しSQL,条件無し,全件取得の場合,以下のメソッドの結果をreturnして上げるだけ これでDAOクラスのメソッドの1つが完結してしまいます jdbcManager.selectBySqlFile(<モデルクラス名>.class,“<SQLファイル>").getResultList(); 後はModelクラスとテーブルを紐付けて出力してあげれば完成 @Entity @Table(name = “<エンティティのテーブル名>") public class <モデルクラス名>{ @Column(name = “<テーブルが持つカラム名>") private <適当なデータ型> <適当な変数名>;}

  7. こんなに楽なら,使えたほうがいいですよねぇこんなに楽なら,使えたほうがいいですよねぇ 仕事の一環も兼ねて模索してみました

  8. IMでS2JDBCを使うためには(Ver7.1)手順 • 必要なJARファイルを追加する • ファイルの追加,編集 • s2jdbc.diconを追加 • app.dicon編集 • jta-10.dicon編集 • Daoクラス情報を設定するdiconの作成 • ダイアレクトの設定(使用するデータベースの設定) • imartContainer.propatiesの編集 • Ver7.0を使用する場合の留意点

  9. IMでS2JDBCを使うためには(Ver7.1)手順 • 必要なJARファイルをそろえる • ファイルの追加,編集 • s2jdbc.diconを追加 • app.dicon編集 • jta-10.dicon編集 • Daoクラス情報を設定するdiconの作成 • ダイアレクトの設定(使用するデータベースの設定) • imartContainer.propatiesの編集 (注意書きのみ) • Ver7.0を使用する場合の留意点 S2Dao,S2JDBCの設定と同じなので IM独自の設定が必要になる部分のみ説明 参照(http://s2container.seasar.org/2.4/ja/s2jdbc_setup.html)

  10. 1.必要なjarファイルをそろえる Ver7.1利用で必要なjarファイルを追加する. • - geronimo-ejb_3.0_spec-1.0.jar • - geronimo-interceptor_3.0_spec-1.0.jar • - geronimo-jpa_3.0_spec-1.0.jar • - geronimo-jta_1.1_spec-1.0.jar • - geronimo-jta_1.1_spec-1.0-tsr.jar • - s2-tiger-2.4.34.jar これらを他のjarファイルが置いてあるところに置いてください. Ex. <インストールフォルダのpath>\doc\imart\WEB-INF\lib\

  11. 2.6imartContainer.propatiesの編集 S2JDBCを利用するフレームワークのみSeasar2対応にする Ex.データフレームワークでのみ利用する場合 • serviceContainer=jp.co.intra_mart.framework.base.service.container.ServiceContainerImpl • eventContainer=jp.co.intra_mart.framework.base.event.container.EventContainerImpl • dataContainer=jp.co.intra_mart.framework.base.data.container.DataContainerImpl • #serviceContainer=jp.co.intra_mart.framework.extension.seasar.service.S2ServiceContainer • #eventContainer=jp.co.intra_mart.framework.extension.seasar.event.S2EventContainer • #dataContainer=jp.co.intra_mart.framework.extension.seasar.data.S2DataContainer

  12. 2.6imartContainer.propatiesの編集 S2JDBCを利用するフレームワークのみSeasar2対応にする Ex.データフレームワークでのみ利用する場合 • serviceContainer=jp.co.intra_mart.framework.base.service.container.ServiceContainerImpl • eventContainer=jp.co.intra_mart.framework.base.event.container.EventContainerImpl • #dataContainer=jp.co.intra_mart.framework.base.data.container.DataContainerImpl • #serviceContainer=jp.co.intra_mart.framework.extension.seasar.service.S2ServiceContainer • #eventContainer=jp.co.intra_mart.framework.extension.seasar.event.S2EventContainer • dataContainer=jp.co.intra_mart.framework.extension.seasar.data.S2DataContainer コメントアウト コメントイン

  13. 3. Ver7.0を使用する場合の留意点 • Ver7.1ではここまでの設定でOK

  14. 3. Ver7.0を使用する場合の留意点 • Ver7.1ではここまでの設定でOK • Ver7.0でも同じように設定して動かそうとすると・・・

  15. 3. Ver7.0を使用する場合の留意点

  16. 3. Ver7.0を使用する場合の留意点 java.lang.AbstractMethodError

  17. 3. Ver7.0を使用する場合の留意点 • Ver7.0では以下のjarファイルを入替る必要有 • - s2-extention-2.4.36.jar • - s2-framework-2.4.36.jar • 場所はVer7.1でjarファイルを追加した場所と同じ これで動きました!! ※注 iWP等でS2JDBCを利用してシステムを動かしたことが    原因で発生した不具合はサポート対象外です.

  18. まとめ とりあえず今回のLTで言いたかったこと • S2JDBCを使えばかなりDAOの実装が楽になる. • iWPやDebug ServerでもS2JDBCを動かすことは可能 • この原理がわかれば,DAOの自動生成も簡単にできるに違いない…

  19. まとめ とりあえず今回のLTで言いたかったこと • S2JDBCを使えばかなりDAOの実装が楽になる. • iWPやDebug ServerでもS2JDBCを動かすことは可能 • 動かし方の原理がわかれば,DAOの自動生成も簡単にできるに違いない… と思っていた時期が私にもありました

  20. まとめ DAOの自動生成に S2JDBCは 採用しませんでした…

  21. まとめ 理由

  22. まとめ 理由 システムデータソースが利用できなかった・・・ (http://oss.intra-mart.org/study_meeting/2009-11-17/2009-11-17_LT_emooru.pdf)

  23. まとめ 理由 システムデータソースが使用できなかった・・・ (http://oss.intra-mart.org/study_meeting/2009-11-17/2009-11-17_LT_emooru.pdf) でもいつか利用できたらいいなぁ・・・

  24. ご清聴ありがとうございました Special Thanks!! emooruさん

More Related