【问题标题】:What is the method to get a REAL from SUM using ORMLite使用 ORMLite 从 SUM 中获取 REAL 的方法是什么
【发布时间】:2015-03-24 20:42:24
【问题描述】:
我的数据库中有各种double 值。为了得到它们的总和,我正在使用
relvantDao.queryRawValue("SELECT SUM(productPrice * productQuantity) FROM cart");
问题是这只返回一个long 值,因此小数点会丢失。如何获得这些值的 REAL 总和?
【问题讨论】:
标签:
java
android
sqlite
ormlite
object-relational-model
【解决方案1】:
问题是这只返回一个长值,因此小数点会丢失。我怎样才能得到这些值的真实总和?
如果您查看ORMLite docs on raw queries,您会发现有多种方法可以使用具有不同字段类型的原始查询。引用:
您还可以通过传入 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。