サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
s2container.seasar.org
概要 データベースのメタデータを読み取りエンティティクラスのコードを生成します。エンティティクラスとは、データベースのテーブルに対応するクラスです。 例えば、次のようなコードを生成できます。 /** * Departmentエンティティクラスです。 * * @author S2JDBC-Gen */ @Entity public class Department { /** departmentIdプロパティ */ @Id @Column(nullable = false, unique = true) public Integer departmentId; /** departmentNameプロパティ */ @Column(length = 20, nullable = true, unique = false) public String departmentName; /** e
概要 SQL自動生成による操作 の 検索条件 や 結合条件 では, SimpleWhereによる指定 や Mapによる指定 ができますが, これらはプロパティ名を文字列で扱うため, 実行するまで名前の間違いに気づきにくくなります. また, プロパティの型と異なる型をパラメータに指定した場合も実行するまで気づきにくくなります. S2JDBC のタイプセーフ API を利用すると, プロパティの名前や型の間違いをコンパイル時にチェックできるようになります. タイプセーフ API は, S2JDBC-Gen の Gen-Names タスクで生成される Names クラス と, S2JDBC が提供する Operations クラス によって構成されます. S2JDBC-Gen の Gen-Service タスクによって生成される Service クラス クラスを使うと, タイプセーフ API を
SQLのログ S2JDBCで実行したSQLは、Seasar2のロガーからログ出力されます。 SQLのログ出力を有効にするには、以下のカテゴリと出力レベルを有効にしてください。 org.seasar.extension.jdbc カテゴリ DEBUG レベル SQLは、バインド変数に実際に適用される引数が埋め込まれた状態でフォーマットされます。 SqlLogRegistry S2JDBCで実行したSQLのログは、アプリケーションから参照することも可能です。 SQLのログは org.seasar.extension.jdbc.SqlRegistry のインスタンスから取得します。 SqlRegistry のインスタンスはDIもしくはルックアップにより取得できます。 DIのための設定は次のようになります。 <component name="sqlLogRegistry" class="org.s
概要 S2JDBC-Genでは、Gen-Ddl タスクを実行することで、エンティティ定義からDDLを出力できます。 ここでは、DDLの生成に大きく関わるエンティティクラスの定義方法を説明します。 Gen-Ddl タスク生成できるDDLの種類には限りがあります。 ストアドプロシージャー、トリガー、ビューなどのDDLを扱うには、Migrate タスクの任意のSQLの実行 を参照してください。 S2JDBC実行時に関するエンティティ定義についてはエンティティ を参照してください。 テーブル定義 テーブルの定義はTableアノテーションを用いて行います。 カタログ名、スキーマ名、テーブル名は、Gen-Ddl タスクで生成されるDDLファイルやダンプファイルの名前に使用されます。 したがって、カタログ名、スキーマ名、テーブル名にファイルシステムで扱えない文字を含めないでください。
S2Dao譲りのSQLファイル S2Dao譲りのSQLファイルを使うこともできます。 SQLファイルとは、SQLをソースコードに記述するのではなく、 ファイルに記述したものです。 単純なSQLだとソースコードに直接記述したほうが、 めんどくさくなくて楽(わざわざファイルを作る必要がない)ですが、 複雑なSQLは、ファイルに記述したほうが、メンテナンスがしやすくなります。 SQLファイルは、クラスパス上にあるならどこにおいてもかまいませんが、 ルートパッケージ.entity.エンティティ名 のパッケージに対応したディレクトリ配下に置くことを推奨します。 例えば、 Employeeに関するSQLファイルは、 examples/entity/Employee ディレクトリにおくと良いでしょう。 SQLファイルのエンコーディングはUTF-8のみをサポートしています。 複数のテーブルを結合するような
List<Employee> results = jdbcManager .from(Employee.class) .getResultList(); 検索するエンティティは、 from() で指定します。 デフォルトでは、結果がなかった場合は、 空の List が返されます。 disallowNoResult() を呼び出すと、 結果がなかった場合は javax.persistence.NoResultException が発生します。
EasyMockサポート 目次 概要 前提条件 EasyMockを使ったテストの流れ テストクラス モックの作成 アノテーションによるモックの作成 モックの種類を指定する モックをS2コンテナに登録する 明示的にモックを作成する モックの振る舞いを記録する モックとのインタラクションを再現する モックとのインタラクションを検証する 概要 EasyMockはモックを利用したテストのためのフレームワークです.モックの振る舞いを設定するのにメソッド名などを文字列で指定するのではなく,インタフェースのメソッド呼び出しで指定することができるため,タイプミスを防げる・エディタの入力補完を利用できる・リファクタリングに追従しやすいなどのメリットがあります. Seasar2のEasyMockサポートを使うとEasyMockを利用するための定型的なコードの記述を減少することができるため,モックを使ったテスト
セットアップ S2JDBC-Tutorial-xxx.zipを解凍し、その中にあるs2jdbc-tutorialを Eclipseにインポートしてください。 この時点では、コンパイルエラーが発生しますが問題ありません。 下で説明するエンティティの生成と修正を行うことでコンパイルエラーが解消されます。 このチュートリアルのデータベースは、HSQLDBを組み込みモードで使用しているので、 起動など特に必要ありません。 データの追加や変更をしたい場合は、src/test/resources/data/test.script を適当に変更してください。 エンティティの生成 エンティティのソースコードは、S2JDBC-Gen を使ってデータベース上のテーブル定義から自動生成します。 S2JDBC-Genの実行に必要なjarファイルとAntのビルドファイル(s2jdbc-gen-build.xml)は
概要 S2JDBC-Genとは、S2JDBC を使った開発をサポートするツールです。 J2JDBC-Genは、保守・運用といったフェーズではなく開発のフェーズを対象としています。 S2JDBC-Genを利用することで、データベーススキーマの修正をJavaのエンティティクラスに反映させるといったこれまでの開発スタイルではなく、 エンティティクラスの修正をデータベーススキーマに反映させるといった新しい開発スタイルが可能になります。 S2JDBC-Genは、Javaのコード修正によるデータベースリファクタリングを実現します。 主な機能には次のようなものがあります。 データベースからエンティティクラスのJavaコードを生成する機能 エンティティクラスからDDL(Data Definition Language)スクリプトとCSV形式のダンプデータを生成し、バージョン管理する機能 バージョン管理され
目次 概要 設定ファイル 設定ファイルの切り替え 概要 Javaでトランザクション処理を行なうには,JTA (Java Transaction API) を使います. JTAは通常,アプリケーションサーバが実装を提供しますが,TomcatのようなJTAの実装のない環境用に,S2JTAを用意しています. 設定ファイル JTAの設定は,diconファイルで行ないます.Seasar2では,以下の表に示す環境用の設定ファイルをs2-extension-2.4.x.jarファイルの中に含めています. 設定ファイル 対象 トランザクション属性 R RN M NS NV
SMART deploy 目次 SMART deployについて SMART deployの種類 HOT deploy COOL deploy WARM deploy パッケージの構成 パッケージの要素 パッケージ構成サンプル diconファイルの構成 diconファイルの設定例 HOT deployサンプルプログラム org.example.service(Impl)パッケージに含まれるファイル testパッケージに含まれるファイル diconファイル 実行結果 SMART deployについて 「SMART deploy」とは、 「HOT deploy」、「COOL deploy」、「WARM deploy」の3種類の総称です。 Seasar2.4から奨励されているパッケージ構成等の規約を守る事によって、設定ファイルを追記する必要なく開発を行うことができます。 初期設定として必要なこと
S2DBCP Webコンテナ定義のDataSourceを使う APサーバのコネクションプールを使う 複数のデータソースを利用する 異なった種類のデータソースを使い分ける 同じ種類のデータソースを動的に切り替える 概要 Javaでデータベースにアクセスするには、データソースを経由したコネクションプールを使うのが一般的です。 コネクションプールは通常、アプリケーションサーバが実装しますが、 Tomcatのようなトランザクションと連動するコネクションプールの実装のないアプリケーションサーバ用に S2DBCPを用意しています。 データソースの設定は、jdbc.diconで行ないます。 jdbc.diconはクラスパスの通っているディレクトリ、 通常はWEB-INF/classesにおきます。 S2DBCP XADataSource、ConnectionPoolの設定をおこないます。 JDBC Dr
本ドキュメントはS2.4.13について記述しています.旧バージョンについては該当バージョンの配布ファイルに含まれているドキュメントを参照してください. DBセッションレプリケーションを使って、HttpSessionのレプリケーションを実現できます。 その際にアプリケーションサーバのセッション機能は利用しません。 クラスタリングをサポートしていないアプリケーションサーバを使って、 セッションレプリケーションを実現できるのです。 セッション情報はデータベースに書き出されます。 レプリケーションを使わない場合でも、メモリを節約する効果もあります。 セッションタイムアウトは現在実装されていないため、セッションデータの削除は、 個別に実装する必要があります。 その際、最後にアクセスした日時をLAST_ACCESSカラムで知ることができます。 セットアップ セッション情報は、できる限り速度の速いデータ
テストの概要 S2テストリファレンス モックを作成するための設定 モックの使用方法 S2Unitを使ったテストクラスの作成方法 S2Unitの機能 Excelファイルの作成 S2DaoTestCase Example モック データベースに対するテスト S2DaoTestCaseのExample テスト技法エクササイズ テストの概要 S2Containerではコンポーネント同士がインターフェースのみで会話することにより依存関係をなくすということから、 インターフェースの実装が出来上がってからテストを行うことになり開発のボトルネックが発生します。この問題を解決するために、Seasar2ではインターフェースのモックを簡単に作成できます。 実装をモックオブジェクトに置き換えることが可能なため、出来上がった順にテストが出来るので、開発のボトルネックが発生しづらくなります。 またコンテナを使った開発
エンティティ用のアノテーションは、JPAのものをそのまま利用していますが、 すべてのアノテーションや要素をサポートしているわけではありません。 ここに取り上げられているもののみサポートされているとお考えください。
インクルード関係 標準diconが他のdiconからどのようにインクルードされるか,他のdiconをどのようにインクルードするかを以下に示します.斜体はSeasar2のJarには含まれていない,非標準のdiconです. app.dicon aop.dicon j2ee.dicon jta.dicon jdbc.dicon jdbc-extension.dicon convenction.dicon ejbtx.dicon javaee5.dicon j2ee.dicon jpa-support.dicon j2ee.dicon ejb3tx.dicon j2ee.dicon dxo.dicon cooldeploy-autoregister.dicon (明示的にインクルードする必要はありません) convention.dicon creator.dicon customizer.dico
Example Hoge.java package examples.tx; public interface Hoge { public void foo(); } HogeImpl.java package examples.tx; public class HogeImpl implements Hoge { public void foo() { System.out.println("foo"); } } HogeClient.dicon <components> <include path="j2ee.dicon"/> <component class="examples.tx.HogeImpl"> <aspect>j2ee.requiredTx</aspect> </component> </components> HogeClient.java package exampl
クイックスタート 最初の一歩 EJB3アノテーションリファレンス Statelessアノテーション Statefulアノテーション EJBアノテーション Resouceアノテーション TransactionManagementアノテーション TransactionAttributeアノテーション Interceptorsアノテーション ExcludeClassInterceptorsアノテーション PostConstructアノテーション AroundInokeアノテーション クイックスタート S2Containerは、Dependency Injection(以降DIと略します)をおこなう軽量コンテナです。 EJB3も実装しています。 最初の一歩 早速試してみましょう。登場人物は次のようになります。 あいさつクラス あいさつ用の文字列を返す。 あいさつクライアントクラス あいさつクラスか
<H2> フレーム関連の警告</H2> <P> このドキュメントはフレーム機能を使って表示するように作られています。フレームを表示できない Web クライアントの場合にこのメッセージが表示されます。 <BR> リンク先<A HREF="overview-summary.html">フレームなしのバージョン</A>
S2JUnit4 目次 S2JUnit4とは 前提条件 サンプル 規約 メソッドの命名規則 自動フィールドバインディング 自動トランザクション 自動インクルード テストの事前データ テストの期待値 WARM deploy 主なクラスとインタフェース ランナー :Seasar2クラス 拡張アサート :S2Assertクラス テストコンテキスト :TestContextインタフェース データアクセッサー :DataAccessorインタフェース アノテーションの利用 @RootDicon @WarmDeploy @Prerequisite @TxBehavior @Mock @Mocks @EasyMock @PostBindFields @PreUnbindFields OGNL式内で利用できる変数 S2JUnit4の設定 デフォルトのs2junit4.dicon シンプルなs2junit4
EncodingFilter TomcatでGETの文字化け TomcatでリクエストURLの文字化け EncodingFilter リクエストのエンコーディングを設定するためのフィルタがEncodingFilterです。 次のようにしてweb.xmlに設定します。 <filter> <filter-name>encodingfilter</filter-name> <filter-class>org.seasar.extension.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingf
概要 Seasar2の基本的な セットアップ をした後に、 JDBCのセットアップ をします。 S2JDBCの設定は、s2jdbc.diconに対して行ないます。 s2jdbc.diconは、S2Tiger-2.4.x.zipを解凍してできたs2-tigerのsrc/test/resourcesにあるので、コピーしてCLASSPATHに含めます。 s2jdbc.diconの中身は、次のようになっているので、 dialectプロパティをお使いのデータベースにあわせて書き換えます。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <compone
S2AOPの概要 AOPを考える上でキーとなる概念 S2AOPリファレンス S2AOPで用意している主なInterceptor TraceInterceptor ThrowsInterceptor ToStringInterceptor RemoveSessionInterceptor InvalidateSessionInterceptor DependencyLookupInterceptor InterceptorChain InterceptorLifecycleAdapter 独自実装によるInterceptor S2AOPで用意している主なInterType PropertyInterType InterTypeChain 独自実装によるInterType S2AOPの概要 AOPとはAspect Oriented Programmingの略で、 複数のクラスに分散するロジック
S2AOPの概要 AOPを考える上でキーとなる概念 AOPのメリット S2AOPのメリット 注意点 S2AOPリファレンス 作成すべきファイル 設定ファイルの説明 S2AOPで用意されているInterceptor TraceInterceptor ThrowsInterceptor MockInterceptor DelegateInterceptor PrototypeDelegateInterceptor SyncInterceptor InterceptorChain diconファイルを使用しないでアスペクトを組み込む方法 Example TraceInterceptor ThrowsInterceptor DelegateInterceptor PrototypeDelegateInterceptor SyncInterceptor 独自実装によるInterceptor S2AO
OGNLガイド 目次 概要 リテラル 定義済みオブジェクト 変数 オブジェクトの生成 フィールドへのアクセス メソッドの呼び出し プロパティへのアクセス インデックスによるアクセス コレクションの操作 カンマ演算子とチェーン その他の演算子 概要 OGNL (Object Graph Navigation Language) は,Javaオブジェクトのプロパティにアクセスしたりメソッドを呼び出したりすることの出来る,Javaによく似た式言語です. Seasar2では,diconファイルの<property>要素の他,<component>要素・<initMethod>要素・<destroyMethod>要素・<arg>要素・<meta>要素にOGNL式を記述することが出来ます. OGNLの詳細はOGNL Tecnologyのサイトを参照してください. リテラル Java標準のリテラル OG
spacer The Seasar Project Site Search Seasar Banner About ホーム ライセンス ダウンロード 課題追跡 ChangeLog 移行ガイド ドキュメント 一覧 セットアップ DIContainer AOP S2JDBC S2JDBC-Gen FAQ (全般) FAQ (AOP) Javadoc S2-Framework S2-Extension S2-Tiger モジュール Seasar2 S2-Framework S2-Extension S2-Tiger プロジェクト文書 プロジェクト情報 ドキュメント一覧 ベーシック セットアップ DIContainer AOP DBアクセス/トランザクション JDBCの設定 S2JDBC S2JDBC (ベース) トランザクションの設定 トランザクションの自動制御 Webアプリケーション 文字化け
Beansクラスは、Commons BeanUtilsの 流れるようなインターフェース版です。 流れるようなインターフェースについては、 こちらをご覧ください Beansクラスを使うには、S2-Tigerが必要です。 セットアップについては、こちらをご覧ください。 プロパティのコピー オブジェクトの生成とプロパティのコピー コンバータ 日付コンバータ SQL用の日付コンバータ 時間コンバータ 日時コンバータ 数値コンバータ 特定のプロパティだけを対象にする 特定のプロパティだけを対象外にする 特定のプレフィックスのついたプロパティだけを対象にする null値のプロパティを対象外にする 空白文字列のプロパティを対象外にする beanDelimiterとmapDelimiter BeanMap プロパティのコピー JavaBeansとJavaBeans、MapとJavaBeans、MapとMa
S2Txの機能を使い、POJO(普通のJavaのクラス)に対して、 トランザクションの自動管理機能を組み込むことができます。 トランザクション属性 Seasar2が標準で用意しているj2ee.diconには、 トランザクション属性に対応したAdviceが定義されています。 j2ee.diconはs2-extension-x.x.x.jarに含まれているので、 開発者のほうで用意する必要はありません。 これらのAdviceは、aspectタグ、 アスペクトの自動登録、 SMART deployによるトランザクション設定 を使ってコンポーネントに適用します。 属性 コンポーネント名 説明
概要 S2JDBCは、データベースプログラミングの生産性を10倍以上高めることを目標として作成した Seasar2のO/R Mapperです。何に比べて生産性が10倍かというとJava標準のJPA(Java Persistence API)に対してです。次のような特徴があります。 流れるようなインターフェースと脱CoC 「流れるようなインターフェース」とは、文章を記述していくようにメソッドを呼び出していく手法です。 詳しくは、ファウラーたんの 流れるようなインターフェース を参照してください。あれこれ説明するよりも、検索の例を見たほうがわかりやすいでしょう。 List<Employee> results = jdbcManager.from(Employee.class) .join("department") .where("id in (? , ?)", 11, 22) .orderB
次のページ
このページを最初にブックマークしてみませんか?
『s2container.seasar.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く