Java 使用JdbcTemplate 中的queryForList發(fā)生錯(cuò)誤解決辦法
Java 使用JdbcTemplate 中的queryForList發(fā)生錯(cuò)誤解決辦法
在開發(fā)項(xiàng)目中遇到JdbcTemplate 中的queryForList發(fā)生錯(cuò)誤,很是頭疼,在網(wǎng)上找了相關(guān)資料,可以幫忙解決,這里記錄下,
一、問題描述:
查詢時(shí)使用JdbcTemplate 中的queryForList發(fā)生錯(cuò)誤,如下:
查詢方法如下:
jdbcTemplate.queryForList(selectSql.toString(), entityClass)
查詢sql如下:
select * from test where 1=1 order by create_time desc limit 0,10
錯(cuò)誤如下:
Incorrect column count: expected 1, actual 5
二、解決方案:
1、上面錯(cuò)誤的原因是,查詢返回的結(jié)果列期望為1,但實(shí)際返回的是5列,因?yàn)閠est表中有5個(gè)字段,故返回5列。而這個(gè)方法參數(shù)的解釋是這樣的:
Parameters: sql SQL query to execute elementType the required type of element in the result list (for example, Integer.class)
就是第2個(gè)參數(shù)在網(wǎng)上說只能是簡(jiǎn)單類型String或Integer。
2、使用query查詢
jdbcTemplate.query(selectSql.toString(), rowMapper)
但多了一個(gè)參數(shù)rowMapper,這個(gè)參數(shù)需要定義為:
@SuppressWarnings("unused")
private BeanPropertyRowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(entityClass){
@Override
protected void initBeanWrapper(BeanWrapper bw) {
super.initBeanWrapper(bw);
}
};
具體的作用就是進(jìn)入查詢結(jié)果轉(zhuǎn)換成實(shí)體。
到這步也就解決問題了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- java中jdbcTemplate的queryForList(坑)
- Java Spring5學(xué)習(xí)之JdbcTemplate詳解
- Java連接sqlserver2008數(shù)據(jù)庫(kù)代碼
- JAVA使用JDBC技術(shù)操作SqlServer數(shù)據(jù)庫(kù)實(shí)例代碼
- 使用java web 在jsp文件及Class中連接MySQL和SQLserver 的驅(qū)動(dòng)方法
- 用Java連接sqlserver數(shù)據(jù)庫(kù)時(shí)候幾個(gè)jar包的區(qū)別分析
- java sqlserver text 類型字段讀取方法
- Java中String的JdbcTemplate連接SQLServer數(shù)據(jù)庫(kù)的方法
相關(guān)文章
SpringBoot2零基礎(chǔ)到精通之profile功能與自定義starter
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)profile功能與自定義starter2022-03-03
SpringBoot實(shí)現(xiàn)文件斷點(diǎn)續(xù)傳功能詳解
在處理大文件傳輸或網(wǎng)絡(luò)不穩(wěn)定的情況下,文件斷點(diǎn)續(xù)傳功能顯得尤為重要,本文將詳細(xì)介紹如何使用Spring Boot實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳功能,需要的可以了解下2025-04-04
Java中Singleton的3種實(shí)現(xiàn)方式詳解
這篇文章主要給大家介紹了關(guān)于Java中Singleton的3種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
springboot 項(xiàng)目容器啟動(dòng)后如何自動(dòng)執(zhí)行指定方法
這篇文章主要介紹了springboot 項(xiàng)目容器啟動(dòng)后如何自動(dòng)執(zhí)行指定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
MyBatis-Plus使用ActiveRecord(AR)實(shí)現(xiàn)CRUD
本文將結(jié)合實(shí)例代碼,介紹MyBatis-Plus使用ActiveRecord(AR)實(shí)現(xiàn)CRUD,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
SpringBoot?Starter自定義全局加解密組件的詳細(xì)流程
SpringBoot?Starter作用將一組相關(guān)的依賴打包,簡(jiǎn)化項(xiàng)目的配置和初始化過程,通過特定的Starter開發(fā)者可以快速的實(shí)現(xiàn)特定功能模塊的開發(fā)和擴(kuò)展,本文給大家介紹了SpringBoot?Starter自定義全局加解密組件的詳細(xì)流程,需要的朋友可以參考下2024-02-02

