錯誤提示,空指針異常
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
解決方案:
- 檢查xxxmapper.xml下數據庫映射是否正確(主要是變量是否一致,不要缺)
1.2 如果變量一致,檢查映射字段,是否變量名寫錯,導致映射失敗 - 檢查表中是否設置主鍵,查看需要獲取數據是否爲空值,爲空,補全.運行正常
問題原因:
1.打斷點,發現mapper方法執行成功,但是userActivities.get(0).getActivityId()報空指針異常,猜測list對象爲空或者數據庫字段爲空
List<UserActivity> userActivities = userActivityMapper.findbyUserActivity(userActivityQueryDTO);
System.out.println(userActivities.get(0).getActivityId());
檢查之後發現,數據庫數據正常,那問題應該就是sql語句返回類型出了問題
2.檢查xxxxmapper.xml中數據返回類型
<select id="findbyUserActivity" parameterType="pbad..dto.QueryDTO.UserActivityQueryDTO" resultType="pbad.Model.UserActivity">
返回類型爲UserActivity
public class UserActivity {
private Long activityId;
private Long userId;
}
數據庫變量
才因爲之前寫insert的時候數據庫設置了主鍵id,沒有及時更正,導致sql返回數據類型爲UserActivity的時候找到數據,先將size增加後,再返回對象,但是因爲映射的原因,導致返回對象爲null,所以我們增添一下id字段就可以了
public class UserActivity {
private int id;
private Long activityId;
private Long userId;
}