1. 程式人生 > 其它 >SSM 整合時出現的一些錯誤以及解決方法

SSM 整合時出現的一些錯誤以及解決方法

技術標籤:bug 解決ssmjavaspringmybatis

在整合SSM時,由於配置較多,很容易出錯,有時候一時半會也找不到錯誤,今天就用這篇文章記錄下本人遇到的錯誤以及解決方法。

Mybaits 部分

Mybatis 部分是很容易出錯的部分,原因是其配置較多,特別是一些細節的地方,千萬要細心。

資料庫連線錯誤

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException:
An attempt by a client to checkout a Connection has timed out.

原因:資料庫配置檔案 database.properties 有錯
正確的格式應如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

注意這裡的 useSSL要為 false ,一開始寫的是 true 就報上述錯誤,檢查了 mybatis 配置檔案以及 sql 發現都沒錯,最後找了很久才發現原來是資料庫配置檔案的問題

資源匯出問題

在 Mybatis 部分,Mapper.xml 要與 Mapper 介面的包名一致,如果將 Mapper.xml 放在 java 目錄下,Maven 不會匯出該資源,需在 pom.xml 中新增匯出 xml 資源的程式碼才行。

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <
include
>
**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>

Mapper 中方法找不到

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xie.dao.BooksMapper.queryBookById

原因:Mapper 有問題,檢查 Mapper 掃描是否有出錯,Mapper 是否繫結好 java 介面,同時還有標籤名要與方法名一致!(本人就在這裡錯誤,原因是 ID 的拼寫大小寫出錯!)

Spring MVC 部分

啟動 Tomcat 後訪問首頁出錯

原因:資源沒有正確新增,檢查編譯後的檔案的WEB-INF目錄下是否有 lib 目錄,如果沒有就是錯的
解決方法:在 Project Structure 中,進入到 Artifacts 中,新增 lib 目錄並將 Maven 依賴匯入
注意:lib 目錄必須在 WEB-INF 目錄下!!!

在這裡插入圖片描述

最後

報錯時要靜下心來,仔細分析可能出現問題的地方,最好用 junit 進行測試,就寫點測試程式碼也不麻煩,當然,學會搜尋解決方案也十分重要,解決 bug 也是一個成長的過程!