ibatis resultMap引數填充異常:java.sql.SQLException: Column 'XXX' not found.
今天使用ibatis時,出現了一個讓人開始很疑惑的異常,後面看官方文件才找到,是我用mybatis習慣了,所以對於ibatis的這種細節區分沒太在意。問題是因為resultMap是一整個物件,而我的查詢只查詢了部分的欄位值,在填充resultMap時,報了一個SQL異常,XXX欄位沒找到
Cause: java.sql.SQLException: Column 'XXXX' not found.
然後就順帶去分析mybatis和ibatis的區別:
1、在判斷空值上面,iBatis是有標籤的<isNotEmpty><isNotNull>等標籤使用,MyBatis確是使用<if></if>來進行這些判斷的
2、ibatis和Mybatis 對於 resultMap 填充值的區別:
iBatis中我們在查詢多條資料的時候都會返回一個resultMap,那麼我們查詢的資料就和resultMap對應,那麼有沒有想過如果兩邊對不上會怎麼樣,特別是在resultMap公用的情況下,你在那邊加會有什麼影響等情況。
經過我的測試發現,如果查詢的欄位多了,resultMap對應的欄位少了,不會報錯,只是查詢後後臺取的的資料這個欄位為NULL值
如果resultMap的欄位多了,查詢資料的時候沒有查詢出來這個資料,那麼此時就會報錯,比如說我查詢的時候沒有查詢name這個欄位,但是resultMap裡面對應的有這個欄位,就會報如下錯誤
Cause: java.sql.SQLException: Column 'name' not found.
而mybatis則不會報錯,只是結果為空值而已
3、ibatis在動態傳值時,只需要用#標記即可,而mybatis則需要使用el表示式一樣#{}
先記到這,後續補充
相關文章
- org.apache.ibatis.binding.BindingException: Parameter 'xxx' not found.ApacheBATException
- java.sql.SQLException: Io 異常: Connection refusedJavaSQLException
- WebService異常Unexpected wrapper element ... found. Expected ...WebAPP
- java.sql.SQLException: No value specified for parameter 1 異常分析JavaSQLException
- MongoDB 異常當機與引數cacheSizeGBMongoDB
- ibatis in語句引數傳入方法BAT
- Kotlin藝術探索之引數和異常Kotlin
- 修改pfile引數檔案過程的異常
- python自定義異常,使用raise引發異常PythonAI
- java.sql.SQLException: Io 異常: The Network Adapter could not establish the connecJavaSQLExceptionAPT
- No Bean named 'Xxx' available 異常報錯BeanAI
- java.sql.BatchUpdateException: Date truncation: Out of range value for column xxxxxJavaSQLBATException
- Spring-RestTemplate之urlencode引數解析異常全程分析SpringREST
- Spring Boot統一異常處理以及引數校驗Spring Boot
- 【PARANETERS】Oracle異常恢復相關的隱含引數Oracle
- 線上ES叢集引數配置引起的業務異常案例分析
- Idea資料庫引入異常:java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognizedIdea資料庫JavaSQLExceptionServerZed
- tomcat連線池不夠-java.sql.SQLException: Io 異常: Connection resetTomcatJavaSQLException
- Caused by: java.sql.SQLException: 索引中丟失 IN 或 OUT 引數:: 1JavaSQLException索引
- Caused by: java.sql.SQLException: Access denied for user 'dell-pc'@'xxxxx' (using password: YES)JavaSQLException
- 異常:java.sql.SQLIntegrityConstraintViolationException: Column 'category' cannot be nullJavaSQLAIExceptionGoNull
- tomcat 啟動應用報錯:java.sql.SQLException: Io 異常: Connection resetTomcatJavaSQLException
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- [譯] Ruby 2.6 增加了 Integer 和 Float 方法的異常引數
- MySQL:MGR修改max_binlog_cache_size引數導致異常MySql
- Mybatis單個引數的if判斷(針對異常:There is no getter for property..)MyBatis
- Caused by: org.apache.ibatis.binding.BindingException: Parameter 'parameter' not found.解決ApacheBATException
- golang 執行系統命令 ps aux | grep "xxxx",總是異常退出GolangUX
- 異常解決:non-compatible bean definition of same name and class【com.xxx.xxx.XXX】Bean
- nginx 常見引數以及重定向引數配置Nginx
- Oracle 反向索引 where index_column like '%xxx'Oracle索引Index
- System.getProperty("xxx")的引數說明
- org.apache.ibatis.exceptions.PersistenceException:記錄mybatis 查詢結果對映異常ApacheExceptionMyBatis
- 解決程式中Error creating bean with name 'XXXXX‘ defined in class path resource [application的異常ErrorBeanAPP
- Eclipse/STS 異常解決:A cycle was detected in the build path of project XXXEclipseUIProject
- 一個HTTP Basic Authentication引發的異常HTTP
- 一場 Kafka CRC 異常引發的血案Kafka
- JVM常見引數設定JVM