Teedaはとりあえずおいといて T_T

HTMLから遷移するあたりがかけるようになったんで、次はDBとS2Daoを使おうとしたら
なんだかエラーのオンパレード。自動解釈でエラーになっているらしいけど
SeasarのDI自身がまだ不理解なもんだから、どのタイミングでダイコンが読み込まれるのかよく分かっていない。
とりあえず、Daoでもサンプルとかと違うところがあるんで、いったん中断して
S2DaoでDBアクセスを試みる。
カラム名に日本語を使っているので、前調べたとおり、ソースはUTF-8にしないと通らないみたい。
とりあえず、HSQLDBを使ってサンプルのEMPに日本語のカラムと内部に日本語のデータを入れて見る。
ドキュメントにあるように、テーブルからXLSファイルに書き出すと、データはしっかり出力されてますね。
でも、カラム名は日本語はだめでした。Excelを起動して、手でカラム名を書き換えれば問題無く動作したのでOKかな。
欲を言うと、カラム名と(多分テーブル名)の取り出しに付いて日本語の対応ができていないみたいですねぇ。


assertEqualsもしっかり通ると思いきや
(1件の取り出しだったんで、DataSetとEmployeeとの比較になった)
Stringは意外にあっさり漢字は通るんですけど、
Excelから読み込んだ場合、(書き出すときにIntegerとかを)Stringとして出力しているようなんですよね。
でasertEqualsはDoubleとかとStringの比較で失敗。
Excelを開いて、左上についてる三角をけして数値に直して実行すると
BigDecimalになるんで、BigDecimalとDoubleの比較(equals)は、JDK1.4だからなのか、失敗してしまいます。
1800と1800.0の比較になるらしい。
実際に値を取り出して、Equalsを使ってもダメ。


ためしに、プリミティブ型に変換すると成立した。


(実数とかだと、等値と扱う誤差範囲を指定したりするんだけど、
事務処理でそれはなじまないかもかな。
ex. abs(a-b)