org.apache.ibatis.exceptions.PersistenceException:記錄mybatis 查詢結果對映異常
具體異常
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'name' from result set. Cause: java.sql.SQLException: Invalid value for getInt() - '張三'
### The error may exist in com/conlin/mapper/UserMapper.xml
### The error may involve com.conlin.mapper.UserMapper.findAll
### The error occurred while handling results
### SQL: select * from mybatis.user
### Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'name' from result set. Cause: java.sql.SQLException: Invalid value for getInt() - '張三'
異常理解
異常資訊表示,在查詢結果中name值對映為int型別的值,如下:
Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'name' from result set. Cause: java.sql.SQLException: Invalid value for getInt() - '張三'
原因是在實體中加了有參的構造方法,而未實現無參構造方法或全參構造方法。
解決方法
這個異常主要是因為實體屬性與sql結果無法對應導致。
1、實現無參構造或全參構造,這樣用 select * from mybatis.user
這個sql 查出所用欄位將與user屬性一一對應。
2、在SQL中將 * 替換為需要的欄位,與實體中的構造方法引數對應,如下:
<select id="findAll" resultType="com.conlin.entity.User">
select name,age from mybatis.user
</select>
public User(String name, int age) {
this.name = name;
this.age = age;
}
這樣的話也可以解決上面的異常,但是查詢結果對映為實體後,其他沒有對應的欄位將為空值。
相關文章
- Mybatis結果對映MyBatis
- MyBatis 結果對映總結MyBatis
- mybatis高階結果對映MyBatis
- Mybatis模糊查詢結果為空MyBatis
- MyBatis從入門到精通(十一):MyBatis高階結果對映之一對多對映MyBatis
- MyBatis從入門到精通(九):MyBatis高階結果對映之一對一對映MyBatis
- Mybatis 查詢語句結果集總結MyBatis
- Mybatis 強大的結果集對映器resultMapMyBatis
- JPA SQL 查詢、結果集對映(@NamedNativeQuery、@ColumnResult註解說明)SQL
- mybatis一對多查詢resultMap只返回了一條記錄MyBatis
- hibernate異常之--count查詢異常
- 異常篇——異常記錄
- Mybatis實現條件IN查詢(foreach)和invalid comparison異常MyBatis
- 【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開SQLServer
- ORDER對查詢結果進行排序排序
- Mybatis入門篇之結果對映,你射準了嗎?MyBatis
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- mybatis-plus連線SQL Server2012分頁查詢異常MyBatisSQLServer
- mysql查詢結果多列拼接查詢MySql
- CoreDNS解析異常記錄DNS
- mybatis 對特殊字元的模糊查詢MyBatis字元
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- 記錄Javascript 異常捕獲JavaScript
- springboot+mybatis,mapper呼叫查詢的資料為空,報空指標異常Spring BootMyBatisAPP指標
- Mybatis底層原理學習(三):查詢結果集的處理原理MyBatis
- Mybatis查詢MyBatis
- Mybatis【15】-- Mybatis一對一多表關聯查詢MyBatis
- Spring整合Mybatis方式一 - 常規整合 - 註冊對映器SpringMyBatis
- Mybatis 基礎xml對映MyBatisXML
- 記錄使用 guzzlehttp 異常捕獲踩坑記錄HTTP
- Laravel Model查詢結果的3種儲存格式記憶體佔用對比Laravel記憶體
- mybatis查詢mysql 資料庫中 BLOB欄位,結果出現亂碼MyBatisMySql資料庫
- 記錄Laravel異常處理類Laravel
- 記錄oracle中查詢資料0.xx結果為.xx的解決辦法Oracle
- MaxCompute如何對SQL查詢結果實現分頁獲取SQL
- [20190306]奇怪的查詢結果.txt
- ps aux查詢結果解釋UX