1

我的数据库中有各种double值。为了得到它们的总和,我正在使用

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

问题是这只返回一个long值,因此小数点会丢失。我怎样才能得到REAL这些值的总和?

4

1 回答 1

2

问题是这只返回一个长值,因此小数点会丢失。我怎样才能得到这些值的真实总和?

如果您查看有关原始查询的 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 从数据库中提取原生数据到 a Double

于 2015-01-28T14:29:00.127 回答