在Spring中,jdbcTemplate的queryForList函数作为对象返回会导致NumberFormatException

时间:2018-02-08 05:15:35

标签: java spring jdbc

我正在使用Spring JDBCTemplate,如下所示,

x = [1,2,3,10]
{...x} // {0:1, 1:2, 2:3, 3:10}

在上面的代码系统打印的结果中,

List<Map<String, Object>> ordersList = new ArrayList<Map<String,Object>>();

String sql = "SELECT aa.Barcode, aa.ItemName, aa.Quantity AS Qty\n" +
                    "FROM\n" +
                    "(SELECT Barcode, ItemName, Quantity\n" +
                    "FROM PurchaseDetails\n" +
                    "UNION\n" +
                    "SELECT Barcode, ItemName, Quantity\n" +
                    "FROM BarcodePrinting) aa";
System.out.println(sql);

jdbcTemplate = new JdbcTemplate(dataSource);
ordersList = jdbcTemplate.queryForList(sql);

System.out.println("ordersList= "+ordersList.toString());

因此,在整数返回时返回它作为

返回
  

[B @ 72d4ef0c

但之前,我在数据库中尝试了这个查询,并按预期返回正确的数字。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

  

[B @ 72d4ef0c

表示它是一个字节数组。尝试更改SQL,如下所示

String sql = "SELECT aa.Barcode, aa.ItemName, SUM(aa.Quantity) AS Qty\n" +
                    "FROM\n" +
                    "(SELECT Barcode, ItemName, Quantity\n" +
                    "FROM PurchaseDetails\n" +
                    "UNION\n" +
                    "SELECT Barcode, ItemName, Quantity\n" +
                    "FROM BarcodePrinting) aa\n " +
                    "GROUP BY aa.Barcode, aa.ItemName";