SUM を使用しているときに、MySQL クエリの結果を Java クラスに変換する際に少し問題があります。
MySQL で単純な SUM を実行する場合
SELECT SUM(price) FROM cakes WHERE ingredient = 'chocolate';
がprice
整数でSUM
あるため、JDBC ドライバーのバージョンに応じて、文字列を返す場合と整数を返す場合があるようです。
どうやらサーバーはJDBCドライバーに結果が文字列であることを伝え、JDBCドライバーはSUM
これを「便利に」整数に変換することがあります。( Marc Matthews の説明を参照してください)。
Java コードは、一部のBeanInfoとIntrospectionを使用して、Bean (のリスト) にクエリの結果を自動的に入力します。ただし、アプリケーションがデプロイされているサーバー間でデータ型が異なる場合、これは明らかに機能しません。
文字列を取得するか整数を取得するかは気にしませんが、常に同じデータ型を保持するか、少なくともどのデータ型を取得するかを事前に知りたいと考えています。
SUM
Java コード内からMySQL によって返されるデータ型を知る方法はありますか? または、これに対処するためのより良い方法を誰かが知っていますか?