增加功能作為四大基礎功能之一,肯定難度不高,作為入門級操作,我們還是直接看代碼吧QAQ。
1.Mapper.xml
首先從xml着手,把相應的sql語句寫好,由於主鍵在數據庫中是自增長,我這里采用的就是下面這個select:
<!-- 新增方法 --> <insert id="insertAdminuser" parameterType="dz.entity.Adminuser"> <selectKey keyProperty="aid" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> insert into adminuser <trim prefix="(" suffix=")" suffixOverrides=","> <if test="aid != null"> aid, </if> <if test="aname != null"> aname, </if> <if test="asex != null"> asex, </if> <if test="aphone != null"> aphone, </if> <if test="apassword != null"> apassword, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="aid != null"> #{aid,jdbcType=INTEGER}, </if> <if test="aname != null"> #{aname,jdbcType=VARCHAR}, </if> <if test="asex != null"> #{asex,jdbcType=CHAR}, </if> <if test="aphone != null"> #{aphone,jdbcType=VARCHAR}, </if> <if test="apassword != null"> #{apassword,jdbcType=VARCHAR}, </if> </trim> </insert>
當然,在add.jsp中寫了主鍵id也可以,但是有重復主鍵會報錯噠。
2. Mapper.java
public interface AdminuserMapper { /*新增管理員*/ int insertAdminuser(Adminuser record); }
3. 然后就是DaoI,DaoImp,ServiceI,ServiceImp層。
就是過渡一下,但是可以將字符串驗證以及過濾,還有如果有日期格式轉換需要放在daoimp里面。
4.Controller層
package dz.controller; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.jws.WebParam.Mode; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import dz.entity.Adminuser; import dz.entity.User; import dz.serviceI.AdminuserService; @RestController @RequestMapping(value="/adminuser") public class AdminuserController extends BaseController{ @Autowired private AdminuserService adminuserService; public AdminuserService getAdminuserService() { return adminuserService; } public void setAdminuserService(AdminuserService adminuserService) { this.adminuserService = adminuserService; } //得到所有的管理員信息 @RequestMapping(value="/getAll") public ModelAndView getAllAdminuser(){ List<Adminuser> adminusers = adminuserService.getAllAdminuser(); return new ModelAndView("adminuser/list","adminusers",adminusers); //新增管理員 @RequestMapping(value="/addAdmin") private ModelAndView insertAdminuser(Adminuser adminuser) { adminuserService.insertAdminuser(adminuser); List<Adminuser> adminusers = adminuserService.getAllAdminuser(); return new ModelAndView("adminuser/list","adminusers",adminusers); } }
其實這里面的邏輯我是這樣想的:1.在添加好數據后點擊提交。2.執行新增方法。3.然后再獲取一遍所有信息,然后跳轉到主頁面。
最后結果出來了,但是我也覺得這樣子好像有點問題,因為不查詢所有信息跳轉過去主頁面得不到數據。所以,其實用ajax比較好,但是那是另外一個知識點,以后再說吧。
5. add.jsp
<form action="adminuser/addAdmin/" method="post"> <div><span>編號:</span><span><input type="text" name="aid" disabled="disabled" value="編號自動生成"></span></div> <div><span>姓名:</span><span><input type="text" name="aname"></span></div> <div><span>性別:</span><span id="myradio"> 男:<input type="radio" name="asex" value="男"> 女:<input type="radio" name="asex" value="女"> </span></div> <div><span>電話:</span><span><input type="text" name="aphone"></span></div> <div><span>密碼:</span><span><input type="text" name="apassword"></span></div> <input type="submit" value="添加"> <input type="button" value="取消" onclick="location='page/adminuser/listPage'"> </form>
我這里直接就禁用了id行的增加,哈哈。
最后在主頁面添加一個新增按鈕(<a href="page/adminuser/add">新增</a>)就行了。
上張效果圖(當然,這是我美化過的):