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!
推薦閱讀:
- Java正確使用訪問修飾符的姿勢
- Java Assert.assertEquals案例詳解
- SpringData如何通過@Query註解支持JPA語句和原生SQL語句
- Spring框架的JdbcTemplate使用
- Assert.assertEquals()方法參數詳解