前言:此專案是前段時間學習自視頻https://www.bilibili.com/video/BV1RE41127rv
如今已過多日,為了再次回顧,便寫下此文,與大家一起分享,此專案很有代表性,也是一個非常適合整合SSM的入門友好型專案
文章目錄
- 一、環境與配置
- 二、專案撰寫
- 1、資料庫部分
- 2、Java后端部分
- (1)POJO物體類
- (2)Dao層
- (3)Service層
- (4)Controller層
- 3、JSP前臺部分 + 各功能詳解
- (1)書籍展示
- (2)書籍查詢
- (2)書籍更改
- (3)書籍添加
- (4)書籍洗掉
一、環境與配置
因環境配置相對繁瑣,而且復用性也強,因此單獨抽成了一篇文章
可參考之前文章:【可復用——筆記】SSM框架搭建(骨架)


二、專案撰寫
1、資料庫部分

2、Java后端部分
(1)POJO物體類
物體類的屬性要與資料庫表中的欄位一一對應,從而避免后期需要通過配置來手動使其一一對應的麻煩

(2)Dao層
1、撰寫Mapper介面,之后用Mapper.xml實作對應介面方法的SQL陳述句,從而生成Mapper介面的實作方法,與資料庫進行資訊交換

2、Mapper.xml,按Mapper類中的介面資訊,來撰寫每個介面方法與資料庫資訊互動的對應SQL陳述句(通過標簽的id屬性對應介面方法名),注意 parameterType屬性與resultType屬性在不同標簽中或是不同介面方法的實作中的應用
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zlc.dao.BookMapper">
<select id="queryBookById" resultType="book">
SELECT bookId, bookName, bookCount, detail
FROM book
WHERE bookId = #{bookId}
</select>
<select id="queryAllBook" resultType="book">
SELECT bookId, bookName, bookCount, detail
FROM book
</select>
<insert id="addBook" parameterType="book">
INSERT INTO book (bookName, bookCount, detail)
VALUES (#{bookName}, #{bookCount}, #{detail})
</insert>
<delete id="deleteBookById" parameterType="int">
DELETE FROM book
WHERE bookId = #{bookId}
</delete>
<update id="updateBook" parameterType="book">
UPDATE book
SET bookName = #{bookName}, bookCount = #{bookCount}, detail = #{detail}
WHERE bookId = #{bookId}
</update>
<select id="queryBookByName" parameterType="string" resultType="book">
SELECT bookName, bookCount, detail
FROM book
WHERE bookName = #{bookName}
</select>
</mapper>
(3)Service層
1、撰寫Service層介面,Service層位于MVC三層架構的中間部分,向下利用Dao層提供的介面實作方法,向上又為Controller層提供服務
(注:下圖中,增加,洗掉,更新一本書的回傳值也可以是boolean型的變數,標識是否操作成功(當然也得看事務提交是否配置成功))

2、撰寫Service層介面的實作類,Service層要利用Dao層的實作類去呼叫方法與資料庫進行資訊互動

(4)Controller層
1、撰寫Controller層的控制類,Controller層首先將請求進行分類(當然,下圖中用更加具體的注解,如@GetMapping,@PostMapping或@DeleteMapping等是更好的選擇),一個請求對應一個方法,并利用Service層提供的介面方法的實作來進行對應操作



3、JSP前臺部分 + 各功能詳解
(1)書籍展示
從啟動 Tomcat 后的第一個頁面介紹起
如下是 index.jsp 頁面

上圖的藍色超鏈接的撰寫如下,${pageContext.request.contextPath}是JSP取得絕對路徑的方法,等價于<%=request.getContextPath()%> ,也就是取出部署的應用程式名或者是當前的專案名稱

從而再拼接/book/allBook請求,傳給Controller層的控制器,實作list方法的呼叫,并呼叫Service層的服務,將所有資料的資料從資料庫中回傳

上圖中的所有書籍的資料資訊裝入model中,使得前臺jsp頁面可以取出model中的屬性,從而得到后臺查詢出的書籍資訊

頁面顯示如下

(2)書籍查詢
輸入書籍名稱,即可進行書籍查詢操作

查無此書時,也會提示錯誤資訊

右側書籍查詢表單的撰寫如下,

對應Controller層的回應方法如下,也是呼叫Service層的方法,并利用model進行鍵值的傳遞,注意最后是用請求轉發的方式,而此處不能用重定向的方式,否則相當于又請求了一次/allBook,將全部書籍裝入model的list屬性對應值中,即方法沒有發揮作用,這種情況要避免

(2)書籍更改
點擊沒本書后的更改操作

更改鏈接的撰寫如下,此處先用傳統方式,而之后用 RESTful 風格再撰寫洗掉操作的請求

可跳轉到 updateBook.jsp 頁面,請求中也附帶所更改書籍的id,可重新定義書籍的資訊(id除外)

跳轉到此 jsp 頁面對應Controller層的請求如下,并將此書籍資訊查出,加入model中,便于前臺對書籍當前資訊的顯示,以及在此基礎上的更改

剛跳轉過來后,text框中之所以會顯示當前書籍的資訊,是因為已傳遞了文本框的默認value值

更改完資訊后,提交表單

處理請求,并重定向到書籍展示頁面,發起book/allBook請求,查詢全部書籍,從而重繪為當前最新的書籍資訊情況

(3)書籍添加
點擊新增

此鏈接的撰寫如下

此請求處理中,只進行視圖的跳轉

跳轉到新增書籍頁

上圖表單的請求如下

處理新增書籍的表單的請求,將書籍添加入資料庫book表后,便重定向頁面到書籍展示頁

添加成功

(4)書籍洗掉
點擊每個書籍行最后的洗掉標簽即可在資料庫中洗掉此書籍

此處,用 RESTful 風格傳遞請求

處理洗掉書籍的表單的請求,將書籍從資料庫book表中洗掉后,便重定向頁面到書籍展示頁

洗掉成功


轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/274541.html
標籤:其他
