S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

iBATIS

iBATIS改めMyBatis

MyBatis Home バージョンは引き継いで3.x台から。 Spring3との連携(追記:2010/09/27) MyBatis 3 + Spring 3 - Spring Community Forums

発行したSQLのログだけ出力する

iBATIS 2.3.3.720 Log4j 1.2.14 iBATISでSQL(select文)を実行すると、DEBUGレベルでこのような形でログが出力される。

java.lang.ref.Referenceの動きとキャッシュ

Java1.6.0_07 SoftReferenceとWeakReferenceの違いを調べてみる。 iBATISのキャッシュのreference-typeをどう設定しようかな?とした時に、SOFTとWEAKの動作を確認しときかったので。

非機能要件w

CSVファイル作成のSQLも画面のSQLと同じにしたい。 けど、一度に数千件とか数万件のオブジェクトは作りたくない。 ページングなんてやってたらむちゃ遅い。 ということで、フェッチのサイクルで処理するには?と考えてみた。

null値の設定

iBATIS Data Mapper Developer Guide#3.3.2. <parameter> Elements ParameterMapにnullValue属性として設定すればいいみたい。 この設定で、パラメータマップのプロパティの値が"\0"ならカラムがnullになる訳です。 <parameterMap id="paramMap" class="HogeClass"> <parameter column="NOTE" property="note" jdbcType="VARCHAR" javaType="java.lang.String" nullValue="\0" /> …</parameter></parametermap>

ストアドプロシージャの結果をカーソルで受け取る

jdbcTypeってのでORACLECURSORってのを指定すれば、戻り値としてカーソルを受け取れるのか。

レスポンス改善とデバッグログ

SVFのプロパティは、デフォルトでデバッグログを書き出す設定になってた。 んなもんで、100ページ程度のPDFに5[分]程度かかってた。 デバッグログの出力をしない設定にすると、5[秒]になった。 iBATISでもそんなことあったなぁ〜

sqlMapの依存関係

namespace属性を同じ名前にしておけば、別ファイルとなっているsqlMapの要素が参照できるはずだった…

キャッシュとクラスタリング

この前、自社パッケージで自作のDBアクセスのキャッシュをActiveMQで通知してリフレッシュする、みたいなの作ったんだが。 iBATISでキャッシュした時、クラスタリングした環境ではどうなる?

キャッシュの問題?

iBATIS 2.1.6.589 CPU使用率が100[%]近くになる原因は判った。

パラメータでリストを使う

iBATIS 2.3.0.677 ソートする場合にORDER BYを動的に変更したいんだけど。 と思って、ソートキーをリストで渡せないか、ゴニョゴニョ試してみた。

sqlMapタグのnamespace属性

<include refid="hogehoge.mogemogeSql" />のような記述で、別のsqlMap(namespace="hogehoge")に記述された、sqlタグのサブクエリ(id="mogemogeSql")が参照できずに放置しとったけども、どうもnamespaceを同じにするとsplMapはお互いに要素が参照できるらしいな。 同じnamespaceの中でsqlMapの記述要</include>…