DB的にはNULLが入っているところを↓のコードで取得したら、
なんとnullではなく0になった。
Double d = rs.getDouble(1);
System.out.println(d);//"0.0"と出力される
確認してみると、getDoubleの戻り値はDoubleではなくdouble…
↓ソース
ResultSet (Java Platform SE 8 )
戻り値:
列値。値がSQL NULLの場合、返される値は0
洗い出したところ、以下メソッドがnullがnull以外を返すようです。
- getBoolean
- getByte
- getShort
- getInt
- getLong
- getFloat
- getDouble
wasNullなんていうgetXxxxで読み取った後に
それがnullかチェックできるメソッドも用意されてるが、
isNullではなく過去形ってあたりが使いづらい…。
結局、↓で解決した
Double d = (Double)rs.getObject(1);
System.out.println(d);//nullと出力される
結論
JDBCを直接使わないで、なんかしらの永続化フレームワークつかえ。