SpringBoot2.x系列教程(四十九)Spring Boot中JdbcTemplate源码分析

本篇文章带大家了解一下SpringBoot中JdbcTemplate的自动配置相关源码分析,同时简单了解一下在使用JdbcTemplate的方法时可能产生的误区。

JDBCTemplate的方法误解

在使用JdbcTemplate时最容易产生误解的就是queryForList方法。该方法的相关源码如下:

@Override
public <T> List<T> queryForList(String sql, Class<T> elementType) throws DataAccessException {
	return query(sql, getSingleColumnRowMapper(elementType));
}

通过方法的定义,我们很容易以为可以用如下的方式进行使用:

@Override
public List<Order> findAllError() {
	return jdbcTemplate.queryForList("select * from tb_order",Order.class);
}

但当你真的如此写的时候,你会发现并没有达到预期的目的,反而会抛出异常。

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 3

	at org.springframework.jdbc.core.SingleColumnRowMapper.mapRow(SingleColumnRowMapper.java:110)
	at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(R
程序新视界 CSDN认证博客专家 Spring 架构 Java
个人公众号【程序新视界】,一个硬技术,软实力同步提升的平台。《Spring Boo技术内幕:架构设计与实现原理》作者,《深入以太坊智能合约开发》联合作者之一。主要从事于三方支付行业。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值