Tag: sum

SUM的数据类型导致MySQL

我在使用SUM时将MySQL查询的结果转换为Java类时遇到了一些问题。 在MySQL中执行简单的SUM时 SELECT SUM(price) FROM cakes WHERE ingredient = ‘chocolate’; 如果price是一个整数,则SUM似乎有时会返回一个字符串,有时会返回一个整数,具体取决于JDBC驱动程序的版本。 显然,服务器确实告诉JDBC驱动程序SUM的结果是一个字符串,并且JDBC驱动程序有时“方便地”将其转换为整数。 (见Marc Matthews的解释 )。 Java代码使用一些BeanInfo和Introspection来自动填充查询结果的bean(列表)。 但是,如果部署应用程序的服务器之间的数据类型不同,这显然无法工作。 我不在乎我得到一个字符串或整数,但我想总是拥有相同的数据类型,或者至少事先知道我将获得哪种数据类型。 有没有办法知道MySQL代码中的MySQL SUM将返回哪种数据类型? 或者有没有人知道一些更好的方法来解决这个问题?

Collectors.summingInt()vs mapToInt()。sum()

如果要对流中的整数值求和,有两种主要方法: ToIntFunction mapFunc = … int sum = stream().collect(Collectors.summingInt(mapFunc)) int sum = stream().mapToInt(mapFunc).sum() 第一个涉及装箱返回的整数并将其拆箱,但第二个步骤涉及额外的步骤。 哪个更有效/更清晰?