基于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)
這條簡(jiǎn)單語(yǔ)句數(shù)據(jù)庫(kù)運(yùn)行是沒有問(wèn)題的,我dao層是用的rowmapper進(jìn)行封裝處理的,報(bào)并非所有變量都已關(guān)聯(lián)的錯(cuò)誤已經(jīng)好多次了,摸索了幾個(gè)小時(shí),總算搞懂了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); }
錯(cuò)誤原因
rowmapper封裝的是返回的對(duì)象,而我是select * ,數(shù)據(jù)庫(kù)中這個(gè)視圖除了rowmapper有封裝的數(shù)據(jù)
還有一些其他數(shù)據(jù),所以select查出來(lái)以后沒法去封裝一一對(duì)應(yīng)
所以會(huì)報(bào) “并非所有變量都已關(guān)聯(lián)”這個(gè)錯(cuò)誤
修改辦法
只需要把sql改成
select zb_id,zbfl_id,sjzbfl_id,sjzbfl_mc,zbfl_mc from zb_zbfl_sjzbfl_view where ....
錯(cuò)誤即可解決?。。。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java利用InputStream類實(shí)現(xiàn)文件讀取與處理
在Java開發(fā)中,輸入流(InputStream)是一個(gè)非常重要的概念,它涉及到文件讀寫、網(wǎng)絡(luò)傳輸?shù)榷鄠€(gè)方面,InputStream類是Java中輸入流的抽象基類,定義了讀取輸入流數(shù)據(jù)的方法,本文將以InputStream類為切入點(diǎn),介紹Java中的輸入流概念及其應(yīng)用,需要的朋友可以參考下2023-11-11解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無(wú)效的問(wèn)題
這篇文章主要介紹了解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無(wú)效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Spring事務(wù)管理只對(duì)出現(xiàn)運(yùn)行期異常進(jìn)行回滾
Spring的事務(wù)管理默認(rèn)只對(duì)出現(xiàn)運(yùn)行期異常(java.lang.RuntimeException及其子類)進(jìn)行回滾,需要了解更多Spring事務(wù)方面的知識(shí),可詳看本文2012-11-11解決mybatis where-if中if不能識(shí)別大寫AND,OR的問(wèn)題
這篇文章主要介紹了解決mybatis where-if中if不能識(shí)別大寫AND,OR的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02Java JVM原理與調(diào)優(yōu)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。下面通過(guò)本文給大家介紹jvm原理與調(diào)優(yōu)相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-04-04Mybatis配置文件之動(dòng)態(tài)SQL配置備忘錄
這篇文章主要介紹了Mybatis配置文件之動(dòng)態(tài)SQL配置備忘錄的相關(guān)資料,需要的朋友可以參考下2017-05-05Mybatis調(diào)用存儲(chǔ)過(guò)程的案例
這篇文章主要介紹了Mybatis如何調(diào)用存儲(chǔ)過(guò)程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot Controller返回圖片的三種方式
在互聯(lián)網(wǎng)的世界里,圖片無(wú)處不在,它們是信息傳遞的重要媒介,也是視覺盛宴的一部分,而在Spring Boot項(xiàng)目中,如何優(yōu)雅地處理和返回圖片數(shù)據(jù),則成為了開發(fā)者們不得不面對(duì)的問(wèn)題,今天,就讓我們一起來(lái)探索Spring Boot Controller的神奇轉(zhuǎn)換,需要的朋友可以參考下2024-07-07Java網(wǎng)絡(luò)編程實(shí)現(xiàn)多線程聊天
這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程實(shí)現(xiàn)多線程聊天,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07SpringBoot?web靜態(tài)資源映射實(shí)現(xiàn)步驟詳解
在springBoot中的靜態(tài)資源的映射是通過(guò)SpringMVC中的resourceHttpRequestHandler來(lái)進(jìn)行實(shí)現(xiàn)的。在該請(qǐng)求映射器中默認(rèn)規(guī)定了,SpringBoot會(huì)將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源2022-09-09