基于UncategorizedSQLException異常處理方案
UncategorizedSQLException異常處理
如題,先貼console:
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [select * from zb_zbfl_sjzbfl_view where zb_id=?4]; SQL state [72000]; error code [1008]; ORA-01008: 并非所有變量都已關(guān)聯(lián)
; nested exception is java.sql.SQLException: ORA-01008: 并非所有變量都已關(guān)聯(lián)
這條簡單語句數(shù)據(jù)庫運行是沒有問題的,我dao層是用的rowmapper進行封裝處理的,報并非所有變量都已關(guān)聯(lián)的錯誤已經(jīng)好多次了,摸索了幾個小時,總算搞懂了rowmapper的大概用法。
附上部分源代碼:
- model:
public class Zbfl_mc_and_sjzbfl_mc {
Integer zb_id;
Integer zbfl_id;
Integer sjzbfl_id;
String zbfl_mc;
String sjzbfl_mc;
.........
}- rowmapper:
public class Zbfl_mc_and_sjzbfl_mc_RowMapper implements RowMapper{
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
Zbfl_mc_and_sjzbfl_mc zbfl_mc_and_sjzbfl_mc=new Zbfl_mc_and_sjzbfl_mc();
zbfl_mc_and_sjzbfl_mc.setZb_id(rs.getInt("zb_id"));
zbfl_mc_and_sjzbfl_mc.setZbfl_id(rs.getInt("zbfl_id"));
zbfl_mc_and_sjzbfl_mc.setSjzbfl_id(rs.getInt("sjzbfl_id"));
zbfl_mc_and_sjzbfl_mc.setSjzbfl_mc(rs.getString("sjzbfl_mc"));
zbfl_mc_and_sjzbfl_mc.setZbfl_mc(rs.getString("zbfl_mc"));
return zbfl_mc_and_sjzbfl_mc;
}
}- daoImpl:
@Override
public Zbfl_mc_and_sjzbfl_mc set_zbfl_and_sjzbfl(Integer zb_id) {
String sql="select * from zb_zbfl_sjzbfl_view where zb_id="+zb_id;
System.out.println(sql);
return getJdbcTemplate().queryForObject(sql, zbfl_mc_and_sjzbfl_mc_RowMapper);
}錯誤原因
rowmapper封裝的是返回的對象,而我是select * ,數(shù)據(jù)庫中這個視圖除了rowmapper有封裝的數(shù)據(jù)
還有一些其他數(shù)據(jù),所以select查出來以后沒法去封裝一一對應(yīng)
所以會報 “并非所有變量都已關(guān)聯(lián)”這個錯誤
修改辦法
只需要把sql改成
select zb_id,zbfl_id,sjzbfl_id,sjzbfl_mc,zbfl_mc from zb_zbfl_sjzbfl_view where ....
錯誤即可解決!?。?!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
activemq整合springboot使用方法(個人微信小程序用)
這篇文章主要介紹了activemq整合springboot使用(個人微信小程序用),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
關(guān)于SpringBoot的三級緩存的思考問題小結(jié)
文章解析SpringBoot三級緩存機制,指出其核心在于通過提前暴露早期引用解決單例Bean屬性注入的循環(huán)依賴,支持AOP代理,但構(gòu)造函數(shù)注入無法解決,本質(zhì)是為特殊場景提供生命周期彈性通道,本文給大家介紹對于SpringBoot的三層緩存的思考,感興趣的朋友一起看看吧2025-10-10
springBoot集成Elasticsearch 報錯 Health check failed的解決
這篇文章主要介紹了springBoot集成Elasticsearch 報錯 Health check failed的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java循環(huán)對bean的屬性進行賦值的實現(xiàn)
本文主要介紹了Java循環(huán)對bean的屬性進行賦值,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Idea+maven搭建SSH(struts2+hibernate5+spring5)環(huán)境的方法步驟
這篇文章主要介紹了Idea+maven搭建SSH(struts2+hibernate5+spring5)環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

