1. 創建數據表
a) 確定表名(如:role)
b) 確定表中的業務列(如:role_name、role_desc)
c) 添加其它基本列
i. 如:role_id(主鍵)、status(數據狀態,用來支持邏輯刪除)、remark(給數據庫管理員或程序員用的備注)、creater(用來記錄數據的創建人)、create_time(用來記錄數據的創建時間)、updater(用來記錄數據的最后更新人)、update_time(用來記錄數據的最后更新時間)
d) 檢查列屬性是否正確(如:自增、主鍵、不能Null、默認值、類型、長度)
e) 檢查列名及表名是否正確(確保沒有拼寫錯誤)
2. 創建模塊類(下面以Role模塊為例)
a) 在com.zhiyou100.crm.model中創建Role類
b) 按照role數據表為Role類添加屬性(注意駝峰命名法)
i. 注意日期時間用Timestamp類型
c) 添加toString()方法,以方便打印Role對象
d) 為屬性生成getter/setter方法,一定要使用Eclipse生成,不要自己手敲
3. 創建RoleDao接口
a) int add(Role role); 用來添加數據
b) int update(Role role); 用來更新數據
c) int remove(int roleId); 用來刪除數據
d) 上面3個方法返回的都是受影響的行數
e) Role get(int roleId); 根據id查出單條數據
f) List<Role> list(); 查出所有有效數據
g) 上面2個方法返回的是業務數據
4. 創建RoleDaoImpl類
a) 實現RoleDao接口
b) 實現RoleDao接口中定義的各個方法
c) 實現add、update、remove方法都是4步
i. 拼SQL
ii. 建連接和語句對象
iii. 設置SQL參數
iv. 調用executeUpdate()方法
d) 實現get、list方法是5步
i. 拼SQL
ii. 建連接和語句對象
iii. 設置SQL參數
iv. 調用executeQuery ()方法
v. 將數據從ResultSet中讀取到Role對象中
5. 創建RoleService接口
a) 添加 int add(Role role); int update(Role role); int remove(int roleId); 方法
b) 添加 Role get(int roleId); List<Role> list(); 方法
6. 創建RoleServiceImpl類
a) 實現RoleService接口
b) 實現RoleService接口中定義的各個方法
c) 都是通過調用RoleDao(RoleDaoImpl)中的方法實現
7. 添加列表頁面(先不實現數據展示功能)
a) 在/WEB-INF/view/中新建role文件夾,role模塊的視圖都放在這個文件夾中
b) 在/WEB-INF/view/role中新建list.jsp,將列表頁的HTML復制進去
i. 修改文字
ii. 修改各處URL為<c:url value=”” />,注意添加taglib指令導入JSTL標簽庫,下面不再提示!
c) 在com.zhiyou100.crm.servlet.role中創建ListServlet,設置映射URL為/role/list
i. 在doGet()方法中,將請求轉發到 /WEB-INF/view/role/list.jsp,以顯示列表頁面
d) 修改list.jsp頁面中的“新增”按扭的URL為<c:url value=”/role/add” />,以便跳到新增頁面
8. 新增功能開發
a) 在/WEB-INF/view/role中新建add.jsp,將前端給的HTML復制進去,修改文字
i. 注意檢查<form>的action屬性中的URL及method是否為POST
ii. 注意檢查<input>等表單控件的name屬性是否拼寫正確
b) 在com.zhiyou100.crm.servlet.role中創建AddServlet
i. 設置映射URL為/role/add
ii. 在doGet()方法中將請求轉發到/WEB-INF/view/role/add.jsp,以顯示新增表單頁面
iii. 測試點新增按扭時能否跳到新增頁面
iv. 在doPost()方法中收集表單傳過來數據
1. roleName、roleDesc
2. 實現化一個Role類,將上面的數據set進去
3. 然后給role對象設置添加人、添加時間
4. 調用roleService.add()方法
a) 添加成功(返回值大於0)則重定向到/應用路徑/role/list
b) 不成功則在請求中添加role對象和errorMessage,轉發到/WEB-INF/view/role/add.jsp,以顯示用戶填寫的數據和錯誤提示
c) 測試新增功能是否正常(新增成功后返回列表頁,在數據庫中可以看到新增加的數據)
9. 列表功能開發
a) 在ListServlet的doGet()方法中調用roleService.list()方法查詢所有正常的數據
b) 將list數據放入請求對象中(請求已被轉發給list.jsp)
c) 在list.jsp中,使用<c:forEach var=“r” items=”${requestScope.list}”> 渲染數據行</c:forEach>
d) 測試列表功能是否正常顯示
i. 注意把鼠標入到編輯圖標和刪除圖標上時,左下角的鏈接地址是否帶有正確的id值
10. 刪除功能開發
a) 添加RemoveServelt
b) 獲取傳過來的id值,轉成整型roleId
c) 調用roleService.remove(roleId)方法刪除數據
d) 重定向到列表頁
11. 更新功能開發
a) 添加/WEB-INF/view/role/update.jsp
i. 注意在這個頁面中,比add.jsp多了一個<input type=”hidden” name=”roleId” value=”${requestScope.role.roleId}” >,用來向UpdateServlet的doPost請求傳遞roleId數據
b) 添加UpdateServlet,實現編輯表單數據的顯示
i. 在doGet()方法中獲取id值,轉成整型roleId
ii. 調用roleService.get(roleId)獲取role對象
iii. 設置role對象到request對象中
iv. 轉發到/WEB-INF/view/role/update.jsp
v. 測試更新頁面能否正常打開
c) 實現數據更新
i. 在doPost()方法中獲取傳過來的roleId和roleName等業務數據
ii. 實例化並設置數據到role對象中
iii. 設置role對象的更新人、更新時間
iv. 調用roleService.update(role)方法更新數據
v. 更新成功則重定向到列表
vi. 失敗則將role對象和errorMessage設置到request中,轉發到update.jsp