2011-01-01から1年間の記事一覧

今が年の何週目か

ある日がその年の何週目かということについて。 というよりかは、年の1週目っていつよ?ってお話。 まずはISO8601の定義。 D は曜日を表し、月曜日が 1、日曜日は 7 である。 〜略〜 ある年における、「最初の木曜日を含む週が、その年の第1週である。」と規…

ライブラリとソース

とあるプロジェクトで、jarファイルにソースを紐付ける 別のプロジェクトで、上記プロジェクトと同じjarをパスを通す 勝手にソースも紐付けられる Eclipseすげーーーとなる Maven使えって???使えたらいいよねー・・・

ローカルキャッシュ

MyBatisで、同一トランザクション内で同じシーケンスから値を2回取得する ようなコードを書くと、同じ値が返されてしまう。サンプルはこんな感じ。 XML <select id="nextId" resultType="Long"> select nextval( #{name} ) as value </select> Java SqlSession session = ・・・; SequenceValue sequenceValu…

HandlerMappingを自動でやりたい

リクエストのパスに対応するControllerを見つけるためのクラスがHandlerMapping。 こういうのは、命名規約といったルール付けをしておくことで、実装者が 設定ファイルを書かなくても自動でできるようにしたい。 イメージとしては、/top/top.formにアクセス…

動的SQLを試す

ユーザー情報的なテーブルがあって、ログインIDかユーザー名か(またはその両方)で 検索するような機能をMyBatisとPostgreSQLで試す。 で、まずはベタにこんな感じ。 画面からくるパラメータの前後に%を付加してlike〜という変数に設定しておく。 <if>を使って、l</if>…

プログラムでトランザクション制御

基本的にはアノテーションでトランザクション制御するけど、 独自にコミットしたいなーって時もあるわけで、そんなテスト。 @Service public class HogeServiceImpl implements HogeService { @Autowired private PlatformTransactionManager transactionMan…

Spring3.0とMyBatisの設定メモ

SpringとMyBatisを連携して使う場合、MyBatisが用意している連携用ライブラリを使うらしい。 というわけでメモ。正しいのかどうかは知らないけど、ちゃんとできてるようには見える。 設定ファイル データソースとMyBatisとトランザクションの定義。 トランザ…

ログ用Interceptorを作る

SpringにはDebugInterceptorやらSimpleTraceInterceptorといったものが 用意されてるけど、ログはオレオレフォーマットが好きなので、無駄に 拡張して作ってみる。 作るもの MethodInterceptorを実装したクラス 上記Interceptorを設定した設定ファイル Metho…

ファイルのアップロード

ほぼサンプル通り。 Commons FileUploadをパスに通し、設定ファイルに以下を追加するだけ。 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1024" /> </bean> あとは、マルチパートでリクエストを飛ばせば、勝手にやってくれる。 その他メモ。 ファイルサイズが超過した場合、MaxUploadSizeExceededExceptionがス…

例外のハンドリング

例外のハンドリングは、運用(ログ)にも関わるので、デフォで用意されて いるものよりは独自に実装したいなーというわけでメモ。 手順はこれだけ。 HandlerExceptionResolverを実装したクラスを作成する。 resolveExceptionの戻り値であるModelAndViewで遷移…

Controller前後に実行される共通の処理を作る

というメモ。 HandlerInterceptorかWebRequestInterceptorの実装クラスを作り、 設定ファイルに書けば、Contorollerの前後に共通の処理を挟める ようになる。 実装クラス public class HogeInterceptor implements HandlerInterceptor { private static fina…

DriverManagerDataSource

Springのデータソースの定義で指定する org.springframework.jdbc.datasource.DriverManagerDataSource というクラス、プールの機能とかはないちょっとしたテスト用のものだった。 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/spring…

Spring MVC 始めました

で、前に触ったときと同じく、どうもしっくりこないなーなんて。 Struts病なんでしょうかね。自由度高いのはうれしいけど、そうすると破綻する プロジェクトばっかだからなぁ。 追記 ついでにMyBatis(iBATIS)も使う。

OutOfMemoryError

いつものOutOfMemory java.lang.OutOfMemoryError: Java heap space ちょっと違うOutOfMemory java.lang.OutOfMemoryError: GC overhead limit exceeded このときのGCログ [Full GC [〜] GC time would exceed GCTimeLimit of 98% ・・・ [Full GC [〜] GC t…

いやんな感じだけど正しく動いちゃうコード

Calendar calendar = Calendar.getInstance(); calendar.clear(); // 2011/02/01 calendar.set(2011, Calendar.FEBRUARY, 1); // 1ヵ月後 calendar.add(Calendar.MONDAY, 1); System.out.printf("%1$tF", calendar); まぁいんだけどさ・・・。 そういえば、p…