如果說前面是準備調料,洗菜,切菜,擺盤,那麼今天就來完整的上道菜,主要說的是基於REST風格實現數據的增刪改查(CRUD)操作。
用料
entity:Employee + Department
對於這樣的實體類大家肯定很熟悉,一個Employee就是一個員工,一個Department就是一個部門,一個員工只屬於一個部門,一個部門可以對應多個員工。
Employee.java
Department.java
dao層:除了entity層,我們還需要有dao層,用於對於entity的增刪改查的操作,這裏對應的有EmployeeDao和DepartmentDao下載
EmployeeDao.java
該dao提供了:1. 添加保存一個employee——save方法
2. 獲取所有員工信息——getAll方法
3. 根據指定員工id查找員工——get方法
4. 根據指定員工id刪除員工——delete方法
DepartmentDao.java
該dao提供了:1. 查找所有部門信息——getDepartments
2. 根據指定id查找相應的部門信息——getDepartment
另外這裏需要用到的所有jar包都在這裏下載
用料齊活了, 就開始做菜了,要做的分別是REST清蒸C(添加記錄)、REST油炸R(查詢記錄)、REST紅燒U(更新記錄)和REST水煮D(刪除記錄)。
1. 查詢記錄
這個很簡單,跟前幾篇介紹的套路差不多,新建一個index.jsp,放入一個用於查詢的超鏈接下載
1 | < a href="emps">list all employees</ a >< br /> |
相應的在Handler中需要添加映射支持,這裏新建一個EmployeeHandler類
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package com.jackie.springmvc.crud.handlers; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.jackie.springmvc.crud.dao.EmployeeDao; @Controller public class EmployeeHandler { @Autowired private EmployeeDao employeeDao; @RequestMapping ( "/emps" ) public String list(Map<String, Object> map){ map.put( "employees" , employeeDao.getAll()); return "list" ; } } |
注意:
這裏RequestMapping中沒有指明RequestMethod的請求類型,默認是GET方式。
最終我們需要將查詢的數據解析出來放到頁面上,這個頁面就是list.jsp
這裏通過表格的方式顯示,表格的每一行顯示一個員工記錄。
如果Handler層沒有傳入employee,則顯示“沒有員工信息”。
如果從Handler層傳入查詢到的employee的信息,則通過遍歷的方式查詢每條記錄並顯示在對應的表格中。
結果如下:下載
這裏查詢了所有的員工信息,爲簡便起見,這裏的員工信息並不是從數據庫中讀取的,而是在EmployeeDao中通過靜態模塊聲明構造的,將每個員工信息放入一個map集合中。
2. 添加記錄
添加記錄即在原有的數據集合基礎上,再新建一個員工信息,我們需要爲員工的每個屬性填充值,所以我們需要一個頁面來爲這些字段賦值,這個頁面就叫input.jsp。下載
添加員工信息的入口鏈接就放在list.jsp中
1 | < a href = "emp">add new employee</ a >< br /> |