欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中jdbcTemplate的queryForList(坑)

程序员文章站 2022-03-16 19:46:28
jdbctemplate 中的queryforlist,你真的懂吗?你想象中的queryforlist是不是应该长成下面这种模样?string sql = "select * from person"...

jdbctemplate 中的queryforlist,你真的懂吗?

你想象中的queryforlist是不是应该长成下面这种模样?

string sql = "select * from person";
list<person> persons = jdbctemplate.queryforlist(sql, person.class);

然后,你很激动的点了run

java中jdbcTemplate的queryForList(坑)

程序跑出来一个,你做梦都想不到的东西,不是list吗?为什么expected是1?

我总共7条数据啊,为什么actual 4?

我还小,为什么没要让我经历这些? 

真相只有一个:

java中jdbcTemplate的queryForList(坑)

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

java中jdbcTemplate的queryForList(坑)

你一看就是用多了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的集合

到此这篇关于java中jdbctemplate的queryforlist(坑)的文章就介绍到这了,更多相关jdbctemplate queryforlist内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!