一 : 添加时对姓名进行唯一性校验
① : 给姓名绑定一个改变事件
② : 取值
③ : 组装对象
④ : ajax (Controller定义对姓名唯一性校验的方法)
在成功回调函数里 判断姓名是否添加过(0=>已添加 1=>未添加)
未添加过,添加成功后,(清空)
/*** 对姓名进行唯一性校验*/$("#userName").change(function () {//取值let userName = $("#userName").val();//组装let obj={userName:userName}//ajax$.ajax({url: "/user/onlyName",type: "post",data: {reqInfos:JSON.stringify(obj)},dataType: "json",success(res) {//打印console.log(res)if (res===1){alert("不重复可以添加")//结束return}else {//存在给出提示alert("此名称已存在,不允许再次添加")$("#userName").val('')}},error() {alert("服务器出错")}})})
二 : Controller层 (添加时姓名进行唯一性校验)
① : 接参
② : 将json对象还原成java对象
③ : 将转换后的对象传给service
重点 : 和登录的方法一样,返回值给 int
④ : 将处理后的结果响应给用户
/*** 对姓名唯一性校验*/protected void onlyName(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接参String reqInfos = req.getParameter("reqInfos");//将json对象转换成java对象User user = JSONObject.parseObject(reqInfos, User.class);//将转换后的对象传给service 0存在 1不存在int i= service.onlyName(user);//响应resp.getWriter().println(JSONObject.toJSONString(i));}
三 : service层 (添加时姓名进行唯一性校验)
① : 调用dao层对象 ② : 处理返回值
重点 : 如果有登录,直接调用登录的方法,不用再写dao层了
③ : 判断要添加的名字在数据库中是否存在
/*** 对姓名进行唯一性校验* @param user* @return*/@Overridepublic int onlyName(User user) {//调用登录的方法,传nameUser u = userDao.login(user.getUserName());//判断 0 存在 1不存在if (null==u){return 1;}return 0;}
没有登录的方法,定义唯一校验的方法
/*** 唯一性校验* @param role* @return*/@Overridepublic int onlyName(Role role) {//调用dao层对象 处理返回值Role r= roleDao.onlyName(role.getRoleName());//判断是否添加过if (null==r){// 1==>未添加return 1;}// 0==>已添加return 0;}
四 : dao层(添加时姓名进行唯一性校验)
① : 有登录的方法,在service调用dao层方法时,调用登录的方法就可以了
② : 没有登录的方法,正常写dao层
/*** 唯一性校验* @param roleName* @return*/@Overridepublic Role onlyName(String roleName) {//定义sqlString sql="SELECT *FROM t_role WHERE role_name=? ";//打印sqlSystem.out.println(sql);//执行sqlreturn baseQueryOne(Role.class,sql,roleName);}