1

データベースにはさまざまなdouble値があります。私が使用しているすべての合計を取得するには

relvantDao.queryRawValue("SELECT SUM(productPrice * productQuantity) FROM cart");

問題は、これは値のみを返すlongため、小数点が失われることです。REALこれらの値の合計を取得するにはどうすればよいですか?

4

1 に答える 1

2

問題は、これが long 値のみを返すため、小数点が失われることです。これらの値の実際の合計を取得するにはどうすればよいですか?

生のクエリに関する ORMLite ドキュメントを見ると、さまざまなフィールド タイプで生のクエリを使用する方法がいくつかあることがわかります。引用するには:

RawRowMapper オブジェクトを渡すことで、結果を独自のオブジェクトにマップすることもできます。これにより、文字列の配列でマッピングオブジェクトが呼び出され、文字列をオブジェクトに変換できるようになります...

結果がより複雑な場合は、独自のカスタム マッパーを定義することもできます。

これは次のようになります。

GenericRawResults<Double> rawResults =
   orderDao.queryRaw(
      "SELECT SUM(productPrice * productQuantity) FROM cart",
      new RawRowMapper<Double>() {
         public Double mapRow(String[] columnNames, String[] resultColumns){
            return Double.parseDouble(resultColumns[0]);
         }
    });

ORMLite ドキュメントに他の例があります。たとえば、DataType[]引数を指定して、ORMLite にデータベースからネイティブに抽出を実行させることもできますDouble

于 2015-01-28T14:29:00.127 に答える