ぬるぽ?
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 が投げられる(汗)。なぜにー。つかソース追ってないんでなんとも言えないけど、多分普通にバグってるんじゃないかな……。まぁ叩く前に存在チェックくらいしろってことかなぁ。