1、棧溢出異常
解決問題
1、報錯信息(java.lang.StackOverflowError)
只有這一句沒有更多的信息了,Mybatis查詢數據庫出現的問題
問題會在Serviceimpl和接口對應的Mapper
我的問題在Serviceimpl
錯誤示范:
public List<Books> queryAllBook() { return queryAllBook(); }
在Service層調用dao層進行數據交互,這樣就會反復調用自己棧溢出
Serviceimpl注入Mapper進行數據操作
private BookMapper bookMapper; public void setBookMapper(BookMapper bookMapper) { this.bookMapper = bookMapper; }
public List<Books> queryAllBook() { return bookMapper.queryAllBook(); }
Mapper出現的問題
<select id="queryBookById" resultType="Books" parameterType="int"> select * from ssmbuild.books where bookID=#{id} </select> <select id="queryAllBook" resultType="Books"> select * from ssmbuild.books </select>
返回值類型寫錯,參數類型寫錯
2、Parameter 'id' not found. Available parameters are [param1, bookID]
問題很顯然注解@param配置的內容和傳進去的參數名不一樣
錯誤示范:
Books queryBookById(@Param("bookID") int id); List<Books> queryAllBook();
public Books queryBookById(int id) { return bookMapper.queryBookById(id); }
可以把上面改為id
或下面該為bookID
3、跳轉500
報空指針異常
我的問題是所有的ApplicationContext分開寫在web.inf下的整合出現問題
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
不能只導入Spring-MVC,需要導入全部
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>