java中jdbcTemplate的queryForList(坑)
时间:2021-11-17 13:17:33|栏目:JAVA代码|点击: 次
jdbcTemplate 中的queryForList,你真的懂吗?
你想象中的queryForList是不是应该长成下面这种模样?
String sql = "select * from person"; List<Person> persons = jdbcTemplate.queryForList(sql, Person.class);
然后,你很激动的点了run

程序跑出来一个,你做梦都想不到的东西,不是list吗?为什么expected是1?
我总共7条数据啊,为什么actual 4?
我还小,为什么没要让我经历这些?
真相只有一个:

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

你一看就是用多了ORM框架吧,这玩意不支持自定义bean勒,这个class也只是支持Integer,String这些基本类型
现在明白except 1,actual 4 是啥意思了吧?
人家期望返回的是一列,但是你返回的了4列,还没明白? 那我举个例子
String sql = "select id from person"; List<Integer> ids = jdbcTemplate.queryForList(sql, Integer.class);
返回id这一列,就可以用queryForList 这个list是所有id的集合


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




