Spring-SSM整合java.lang.StackOverflowError,Parameter 'id' not found. Available parameters are [param1, bookID],底層沒錯跳轉500


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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM