项目搭建+姓名唯一性校验

server/2024/12/25 2:31:30/

一 : 添加时对姓名进行唯一性校验

                ① : 给姓名绑定一个改变事件

                ② : 取值

                ③ : 组装对象

                ④ : 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);}

 


http://www.ppmy.cn/server/152940.html

相关文章

MySQL的并发控制与MVCC机制深度解析

目录 1. MySQL中的并发问题2. 数据库的隔离级别3. MVCC(多版本并发控制)机制3.1 MVCC的实现原理3.2 Read View详解3.3 当前读与快照读 4. MVCC在不同隔离级别下的工作方式5. MVCC解决幻读问题6. MVCC的优缺点优点:缺点: 7. MVCC在…

如何在 QGIS 中打开 Esri 文件地理数据库(GDB)

Esri 的文件地理数据库 (GDB) 是一种专有数据存储格式,旨在管理、查询和分析 ArcGIS 软件生态系统中的空间和非空间数据。顾名思义,文件地理数据库是存储在文件夹中的一系列文件。文件夹名称后附加扩展名 .gdb。 Esri 文件地理数据库可用于存储矢量和栅…

笔记本电脑需要一直插着电源吗?电脑一直充电的利弊介绍

笔记本电脑属于常用电子设备,它的便携性和功能性给我们带来了很多便利。但是,我们在使用笔记本电脑的时候,是否应该一直插着电源呢?这个问题可能困扰了很多人,因为不同的使用方式可能会对笔记本电脑的性能和寿命产生不…

C++--------内存结构

C内存结构 程序内存分区: 栈区(Stack):由编译器自动分配和释放,用于存放函数的参数值、局部变量等。其操作方式类似于数据结构中的栈,先进后出。例如,在函数调用时,函数内部的局部变…

蓝桥杯刷题——day9

蓝桥杯刷题——day9 题目一题干解题思路一代码解题思路二代码 题目二题干解题思路代码 题目一 题干 小蓝最近在研究一种浮点数的表示方法:R格式。对于一个大于0的浮点数d,可以用R格式的整数来表示。给定一个转换参数n,将浮点数转换为R格式整…

golang 并发--goroutine(四)

golang 语言最大的特点之一就是语法上支持并发,通过简单的语法很容易就能创建一个 go 程,这就使得 golang 天生适合写高并发的程序。这一章节我们就主要介绍 go 程,但是要想完全理解 go 程我们需要深入研究 GPM 模型,关于 GPM 模型…

WebXR

HTTPS https网页才能启动VR模式,本地调试时配置https vite 启用 https npm install -D vitejs/plugin-basic-ssl --save vite.config.js import { defineConfig } from vite; import basicSsl from vitejs/plugin-basic-ssl;export default defineConfig({serv…

使用 HTML5 Canvas 实现动态蜈蚣动画

使用 HTML5 Canvas 实现动态蜈蚣动画 1. 项目概述 我们将通过 HTML 和 JavaScript 创建一个动态蜈蚣。蜈蚣由多个节段组成,每个节段看起来像一个小圆形,并且每个节段上都附带有“脚”。蜈蚣的头部会在画布上随机移动。 完整代码在底部!&…