jdbcTemplate 中的queryForList的大坑

jdbcTemplate 中的queryForList,你真的懂吗?
你想象中的queryForList是不是应该长成下面这种模样?

String sql = "select * from test.user";
List<User> userList = jdbcTemplate.queryForList(sql,User.class);

然后,很激动的点了run

在这里插入图片描述

程序跑出来一个,然后痛苦面具😖😖😖😖😖,不是list吗?为什么expected是1?

我总共5条数据啊,为什么actual 3?

真相只有一个:
在这里插入图片描述

传了对应class的,创建的是singleColumnRowMapper,也就是只取一列的值,再看看文档注释

在这里插入图片描述

你一看就是用多了ORM框架吧,这玩意不支持自定义bean勒,这个class也只是支持Integer,String这些基本类型

现在明白except 1,actual 3 是啥意思了吧?

人家期望返回的是1列,但是你返回的了3列,还没明白? 那我举个例子

String sql = "select id from User";
List<Integer> id = jdbcTemplate.queryForListt(sql, Integer.class);

返回id这一列,就可以用UserList 这个list是所有id的集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值