帳モメのotanuft

Stay hungry, stay foolish.

2005-03-01から1ヶ月間の記事一覧

Jaxorのサンプル

Jaxorのサンプル Jaxorをダウンロードする。 http://jaxor.sourceforge.net/ 現在の最新は3.5 今回はOracleを使用する。 SCOTTのEMP表をマッピングしてみる。 今回使用したソース

Jaxor Overview

Jaxor - Model Driven Persistence Jaxor Overview

iBATIS ストアドプロシージャー

OracleのPL/SQLを呼んでみる

iBATISの動的SQL2

SqlMapのバインド変数で、$と#の違いについて $XXX$→PreparedStatementの固定文字(そのプロパティの値で置き換わる) #XXX#→PreparedStatementのバインド変数(?に置き換わる) として扱われる。

iBATISとCGLib

LazyLoadingを調べたときに、仕組みを少し調べてみた。 iBATISやHibernateは、LazyLoadingを実現するためにCGLIBを使っています。 http://cglib.sourceforge.net/ CGLIBは、Code Generation Libraryの略で、 読んで字のごとく、Javaコード生成ライブラリです…

iBATIS LazyLoading

iBATISでも、LazyLoading機能がある。 LazyLoadingとは、実際にそのクラスをロードするときに、 初めて、インスタンス化されるもの。 iBATISでも、親子関係のレコードを、一度にマッピングしてロードできる。 今回のサンプルでは、 の関係のドメインモデルで…

N+1 Selects問題

iBATISに限らず、O/Rマッピングでの問題点。 ネストした、子レコードの自動取得時に、親レコードが複数検索される場合、 ヒットした親レコードの数だけ、子レコードにSELECT文が発行されることが有る。 親レコードが、キー検索のような場合は問題が少ないが…

INSERTするとき

INSERTするとき、 <insert> INSERT INTO TEST (VAL1, VAL2, VAL3) VALUES(#val1#,#val2#,#val3#) </insert> とやると、Nullの値のときにSQLExcptionが上がる(Oralcle)。 なので、 <insert> INSERT INTO TEST (VAL1, VAL2, VAL3) VALUES(#val1::NUMERIC:NO_ENTRY#,#val2:VARCHAR:NO_ENT</insert>…

マップするBeanを作らない

マップするBeanを作らないで、iBATISを使ってみる。 ParameterClassにMap、ResultClassにMapを使う。 まぁ、他のO/Rマップツールでもありそうだけど、あえてやってみる。 利用価値あるのか?