基于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)文章
Java利用InputStream類實現(xiàn)文件讀取與處理
在Java開發(fā)中,輸入流(InputStream)是一個非常重要的概念,它涉及到文件讀寫、網(wǎng)絡(luò)傳輸?shù)榷鄠€方面,InputStream類是Java中輸入流的抽象基類,定義了讀取輸入流數(shù)據(jù)的方法,本文將以InputStream類為切入點,介紹Java中的輸入流概念及其應(yīng)用,需要的朋友可以參考下2023-11-11解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無效的問題
這篇文章主要介紹了解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無效的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Spring事務(wù)管理只對出現(xiàn)運行期異常進行回滾
Spring的事務(wù)管理默認只對出現(xiàn)運行期異常(java.lang.RuntimeException及其子類)進行回滾,需要了解更多Spring事務(wù)方面的知識,可詳看本文2012-11-11解決mybatis where-if中if不能識別大寫AND,OR的問題
這篇文章主要介紹了解決mybatis where-if中if不能識別大寫AND,OR的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java JVM原理與調(diào)優(yōu)_動力節(jié)點Java學院整理
JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。下面通過本文給大家介紹jvm原理與調(diào)優(yōu)相關(guān)知識,感興趣的朋友一起學習吧2017-04-04SpringBoot Controller返回圖片的三種方式
在互聯(lián)網(wǎng)的世界里,圖片無處不在,它們是信息傳遞的重要媒介,也是視覺盛宴的一部分,而在Spring Boot項目中,如何優(yōu)雅地處理和返回圖片數(shù)據(jù),則成為了開發(fā)者們不得不面對的問題,今天,就讓我們一起來探索Spring Boot Controller的神奇轉(zhuǎn)換,需要的朋友可以參考下2024-07-07Java網(wǎng)絡(luò)編程實現(xiàn)多線程聊天
這篇文章主要為大家詳細介紹了Java網(wǎng)絡(luò)編程實現(xiàn)多線程聊天,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解
在springBoot中的靜態(tài)資源的映射是通過SpringMVC中的resourceHttpRequestHandler來進行實現(xiàn)的。在該請求映射器中默認規(guī)定了,SpringBoot會將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源2022-09-09