ぬるぽ?

 JavaA2Zの実装回りの話をちょこちょこと。
 SQL 叩くところは全部 QueryRunner 使ってやってます。これ、ホントに便利。普通に SQL 叩くだけなら close() 叩く必要もないし、取得したデータをまとめてクラスにぶち込んでしかも List で返してくれるし。
 一応サンプルコードとか。

    /**
    *    単語ひとつを取得します。
    *    @param _wordId 単語ID。
    *    @return 単語データ。取得できなければ null を返します。
    */
    public WordData getWordData( String _wordId ) throws SQLException
    {
        try
        {
            QueryRunner qr = new QueryRunner( ds_ );
            
            // 単語本体の取得。
            WordData wordData 
                = (WordData)qr.query
                    ( SELECT_WORD_ONE
                    , new Object[]{ _wordId }
                    , new BeanHandler( WordData.class ) 
                    );

            // 参照先の取得。
            List list 
                = (List)qr.query
                    ( SELECT_WORD_REFERENCE
                    , new Object[]{ _wordId }
                    , new BeanListHandler( LinkData.class ) 
                    );
            wordData.setRefererLinkDatas
                ( (LinkData[])list.toArray( new LinkData[0] ) );

            return wordData;
        }
        catch( NullPointerException e )
        {
            // 取得できませんでした。
            return null;
        }
    }

 が。
 ひとつだけ…… SQL 叩いてヒットしなかった場合の挙動が……なぜか NullPointerException が投げられる(汗)。なぜにー。つかソース追ってないんでなんとも言えないけど、多分普通にバグってるんじゃないかな……。まぁ叩く前に存在チェックくらいしろってことかなぁ。