1. 程式人生 > 其它 >錯誤記錄1

錯誤記錄1

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中。