增加功能作为四大基础功能之一,肯定难度不高,作为入门级操作,我们还是直接看代码吧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>)就行了。
上张效果图(当然,这是我美化过的):


