当前位置: 首页 > 知识库问答 >
问题:

javascript - Java连接数据库添加数据时避免重复提示的解决方案?

闻人昊昊
2024-03-15

Java连接数据库添加数据有重复的提示并不添加

//点击确定,新增宿舍

function qd() {    //新增宿舍的时候 我们需要哪些数据?    //1。宿舍名字    let dormName=$("#name").val();    //2.宿舍类型的id   可住人数  这两个数据可以根据类型的名称去查询到    let typeName=$("#classid").val();    //去查询    $.get(`${url}/selectDormTypeByNum`,{name:typeName},function (result) {        //取出宿舍类型的id  以及可住人数        let typeId=result[0].id;        let num=result[0].num;        let buildingId=$("#buildingId").val();        $.get(`${url}/addDorm`,{dormName:dormName,kz:num,dormType:typeId,building:buildingId},function (result) {            $("#addmodal").html("");            if (result.affectedRows>0) {                return Collections.singletonMap("status", "error").put("message", "宿舍号重复");            }            /*if (result.affectedRows>0){                alert("添加成功");                $("#addmodal").modal("hide");                select();            }else{                alert("宿舍号重复");            }*/                    })    })}

此处为宿舍楼效果图
图片
此处为添加宿舍以后的效果图
图片

想要效果添加宿舍,宿舍号重复时不添加并提示

共有1个答案

许沛
2024-03-15

在Java中连接数据库并添加数据时,要避免重复添加并提示用户,通常的做法是在添加数据前进行检查,确保要添加的数据在数据库中不存在。这通常涉及到查询数据库,检查要添加的数据是否已经存在。

以下是一个简单的示例,展示了如何在Java中使用JDBC(Java Database Connectivity)连接数据库,并在添加数据前进行检查:

import java.sql.*;public class AddDataExample {    public static void main(String[] args) {        String url = "jdbc:mysql://localhost:3306/your_database";        String username = "your_username";        String password = "your_password";        String dormName = "your_dorm_name"; // 这里应该是从用户输入或其他地方获取的值        try (Connection connection = DriverManager.getConnection(url, username, password)) {            String checkQuery = "SELECT COUNT(*) FROM your_table WHERE dorm_name = ?";            PreparedStatement checkStatement = connection.prepareStatement(checkQuery);            checkStatement.setString(1, dormName);            ResultSet rs = checkStatement.executeQuery();            if (rs.next() && rs.getInt(1) > 0) {                // 如果查询结果大于0,说明宿舍名已经存在,不添加数据并提示用户                System.out.println("宿舍号重复,不添加数据");            } else {                // 如果宿舍名不存在,则添加数据                String insertQuery = "INSERT INTO your_table (dorm_name, ...) VALUES (?, ...)";                PreparedStatement insertStatement = connection.prepareStatement(insertQuery);                insertStatement.setString(1, dormName);                // 设置其他参数...                int rowsInserted = insertStatement.executeUpdate();                if (rowsInserted > 0) {                    System.out.println("数据添加成功");                } else {                    System.out.println("数据添加失败");                }            }        } catch (SQLException e) {            e.printStackTrace();        }    }}

在这个示例中,我们首先使用PreparedStatement查询数据库,检查要添加的宿舍名是否已存在。如果存在,则不添加数据并提示用户。如果不存在,则使用另一个PreparedStatement添加数据。

请注意,你需要根据你的数据库配置、表结构和需求来修改这个示例。此外,使用try-with-resources语句可以确保数据库连接在使用后被正确关闭。

在你的JavaScript代码中,当服务器返回“宿舍号重复”的错误时,你可以通过修改DOM元素或显示一个警告消息来通知用户。例如,你可以使用jQuery来更新页面上的某个元素,或者使用alert()函数显示一个警告框。

 类似资料:
  • 我目前正在开发一个Android应用程序,我使用Firebase(实时功能)作为后端服务。此外,我开发了这个功能,如下所示。 扩展代码工作得很好,它检查现有数据并显示Toast消息,但在数据仍进入数据库后,我想消除重复数据。

  • 问题内容: 我有一个包含3列的表格- id(pk),pageId(fk),名称。我有一个PHP脚本,它将大约5000条记录转储到表中,其中大约一半是重复的,具有相同的pageId和名称。pageId和名称的组合应该是唯一的。当我遍历php中的脚本时,防止重复项被保存到表中的最佳方法是什么? 问题答案: 第一步是在表上设置唯一键: 然后,当有重复项时,您必须决定要做什么。你应该: 忽略它? 覆盖先前

  • 我试图Conconat 2 DataFrames,但. Join正在创建一个不需要的副本。 我试过: 但这返回了一个我理解的错误(“concat未能重新索引,仅对唯一值的索引对象有效”) 我试着: 它没有给出错误,但给出以下数据帧: 我的问题是重复的10.1和400在时间戳1520259275。它们不在原始df_bid数据框中两次,应该只在这个df中出现一次。有两行相同的时间戳是正确的,因为此时有

  • 我们有一个基于微服务的系统,其中一个专用服务对MySQL执行所有与数据库相关的调用(db reader)。 在对< code>db-reader服务的其他服务中不时出现断路错误。 我们发现在此期间发生了Hikari池连接关闭/打开操作。 08:39:25.312 2022-03-28 08:39:25,311 [HikariPool-19 连接关闭] DEBUG com.zaxxer.hikari

  • 本文向大家介绍java连接mysql数据库 java连接sql server数据库,包括了java连接mysql数据库 java连接sql server数据库的使用技巧和注意事项,需要的朋友参考一下 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql server数据库 一、mysql 二、sql server 以上就

  • 问题内容: 有关关闭Java中数据库连接的后续问题 我知道conn.close()是必需的,但不知道为什么。一旦方法调用结束,垃圾收集器是否会释放连接对象(并释放连接对象中存储的所有指向数据库的处理程序)? 问题答案: 一旦方法调用结束,垃圾收集器是否会释放连接对象(并释放连接对象中存储的所有指向数据库的处理程序)? 没有。JDBC驱动程序保留对连接的引用,因此除非您可以关闭(),否则它不会被清除