錯誤記錄1
阿新 • • 發佈:2021-12-13
1、org.apache.ibatis.reflection.ReflectionException
nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'chapter' in 'class com.yuan.entity.Chapter'
2、org.apache.ibatis.executor.ExecutorException
org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected.
由於查找出了多個物件,一般查詢的那個欄位是資料有重複。
程式期望返回不超過一行資料,但實際返回了多於一行的資料。
解決方法:
出現這種錯誤的可能性很多,其中一種便是關聯查詢問題:比如collection是一對多的查詢,而association是一對一的查詢。
3、java.lang.IllegalArgumentException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.yuan.mapper.EssayMapper.getEssayMenu ### The error may exist in file [F:\個人專案\線上碼字\SpringBootWrite\target\classes\mybatis\mapper\ChapterMapper.xml] ### The error may involve com.yuan.mapper.ChapterMapper.getChapterMenu
解決方法
Mapped Statements collection does not contain value for後面是什麼類什麼方法之類的:
錯誤原因有幾種:
1、mapper.xml中沒有加入namespace
2、mapper.xml中的方法和介面mapper的方法不對應
3、mapper.xml沒有加入到mybatis-config.xml中(即總的配置檔案),例外:配置了mapper檔案的包路徑的除外
4、mapper.xml檔名和所寫的mapper名稱不相同。
我的此次錯誤是 namespace 錯誤。
4、java.lang.ClassCastException:
lass java.util.LinkedHashMap cannot be cast to class com.yuan.entity.Book (java.util.LinkedHashMap is in module...
解決方法
匯入下面的maven依賴
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
<classifier>jdk15</classifier>
</dependency>
然後資料做以下處理
JSONObject jsonObject=JSONObject.fromObject(param.getData()); // 將資料轉成json字串
Book book = (Book) JSONObject.toBean(jsonObject, Book.class); //將json轉成需要的物件
5.java.lang.IllegalArgumentException
詳細描述
java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.String
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1031) ~[mybatis-3.5.6.jar:3.5.6]
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:740) ~[mybatis-3.5.6.jar:3.5.6]
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:394) ~[mybatis-3.
解決方法
錯誤!
<select id="getTitle" resultMap="java.lang.String">
SELECT title
FROM m_cagetory AS category
WHERE category.id = #{id} AND category.user_id = #{user_id}
</select>
正確。
<select id="getTitle" resultType="java.lang.String">
SELECT title
FROM m_cagetory AS category
WHERE category.id = #{id} AND category.user_id = #{user_id}
</select>
但需要注意的是,並不一定是當前SQL操作所使用的mapper.xml檔案,那些本次SQL操作不會使用的mapper檔案也會導致這個錯誤。
我的此次錯誤便是操作UserMapper,但錯誤在CategoryMapper中。