java中jdbcTemplate的queryForList(坑)

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的集合

到此這篇關於java中jdbcTemplate的queryForList(坑)的文章就介紹到這瞭,更多相關jdbcTemplate queryForList內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: