Java 使用JdbcTemplate 中的queryForList發(fā)生錯誤解決辦法
Java 使用JdbcTemplate 中的queryForList發(fā)生錯誤解決辦法
在開發(fā)項目中遇到JdbcTemplate 中的queryForList發(fā)生錯誤,很是頭疼,在網(wǎng)上找了相關資料,可以幫忙解決,這里記錄下,
一、問題描述:
查詢時使用JdbcTemplate 中的queryForList發(fā)生錯誤,如下:
查詢方法如下:
jdbcTemplate.queryForList(selectSql.toString(), entityClass)
查詢sql如下:
select * from test where 1=1 order by create_time desc limit 0,10
錯誤如下:
Incorrect column count: expected 1, actual 5
二、解決方案:
1、上面錯誤的原因是,查詢返回的結果列期望為1,但實際返回的是5列,因為test表中有5個字段,故返回5列。而這個方法參數(shù)的解釋是這樣的:
Parameters: sql SQL query to execute elementType the required type of element in the result list (for example, Integer.class)
就是第2個參數(shù)在網(wǎng)上說只能是簡單類型String或Integer。
2、使用query查詢
jdbcTemplate.query(selectSql.toString(), rowMapper)
但多了一個參數(shù)rowMapper,這個參數(shù)需要定義為:
@SuppressWarnings("unused") private BeanPropertyRowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(entityClass){ @Override protected void initBeanWrapper(BeanWrapper bw) { super.initBeanWrapper(bw); } };
具體的作用就是進入查詢結果轉換成實體。
到這步也就解決問題了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- java中jdbcTemplate的queryForList(坑)
- Java Spring5學習之JdbcTemplate詳解
- Java連接sqlserver2008數(shù)據(jù)庫代碼
- JAVA使用JDBC技術操作SqlServer數(shù)據(jù)庫實例代碼
- 使用java web 在jsp文件及Class中連接MySQL和SQLserver 的驅(qū)動方法
- 用Java連接sqlserver數(shù)據(jù)庫時候幾個jar包的區(qū)別分析
- java sqlserver text 類型字段讀取方法
- Java中String的JdbcTemplate連接SQLServer數(shù)據(jù)庫的方法
相關文章
springmvc使用@notNull注解驗證請求參數(shù)方式
這篇文章主要介紹了springmvc使用@notNull注解驗證請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>2024-01-01Eclipse+Java+Swing+Mysql實現(xiàn)工資管理系統(tǒng)
這篇文章主要介紹了Eclipse+Java+Swing+Mysql實現(xiàn)工資管理系統(tǒng),對正在工作或者學習的你有一定的參考價值,需要的朋友可以參考一下2022-01-01淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?
這篇文章主要介紹了淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?具有很好的參考價值,希望對大家有所幫助。一起跟隨想小編過來看看吧2020-09-09SpringBoot+Redis+Lua防止IP重復防刷攻擊的方法
本文主要介紹了SpringBoot+Redis+Lua防止IP重復防刷攻擊的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12java 集合并發(fā)操作出現(xiàn)的異常ConcurrentModificationException
Map在遍歷時候通常 現(xiàn)獲得其鍵值的集合Set,然后用迭代器Iterator來對Map進行遍歷。2009-06-06