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入門篇之結果對映,你射準了嗎?MyBatis
- ORDER對查詢結果進行排序排序
- mybatis一對多查詢resultMap只返回了一條記錄MyBatis
- 【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開SQLServer
- xsl中,對xml文件查詢的結果再次查詢XML
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- hibernate異常之--count查詢異常
- SQL Server對組合查詢結果排序方法SQLServer排序
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- [Mysql 查詢語句]——對查詢結果進一步的操作MySql
- mysql查詢結果多列拼接查詢MySql
- Mybatis學習筆記(5)-高階對映之多對多對映MyBatis筆記
- Mybatis學習筆記(4)-高階對映之一對多對映MyBatis筆記
- Mybatis學習筆記(3)—高階對映之一對一對映MyBatis筆記
- "對只轉髮結果集的無效操作: first" - 異常
- navicat 匯出查詢結果
- mysql匯出查詢結果MySql
- Mybatis實現條件IN查詢(foreach)和invalid comparison異常MyBatis
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- Mybatis底層原理學習(三):查詢結果集的處理原理MyBatis
- CoreDNS解析異常記錄DNS
- SQL查詢結果集對注入的影響及利用SQL
- ps aux查詢結果解釋UX
- mybatis 對特殊字元的模糊查詢MyBatis字元
- MyBatis 返回結果MyBatis
- mybatis查詢mysql 資料庫中 BLOB欄位,結果出現亂碼MyBatisMySql資料庫
- MySQL查詢結果匯出方式總結MySql
- Laravel Model查詢結果的3種儲存格式記憶體佔用對比Laravel記憶體
- 記錄Javascript 異常捕獲JavaScript