首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确保数据是否已存在于数据库中

如何确保数据是否已存在于数据库中
EN

Stack Overflow用户
提问于 2019-10-01 12:22:45
回答 4查看 561关注 0票数 0

我的代码有一些错误,当我编写一个数据库中不存在的滚动号并按下删除按钮时,也会弹出一条消息:“已成功删除”

实际上,我想通过连接java和MySQL来创建一个学生报告项目。所以我为delete按钮编写了代码,在这个代码中,如果写入并按下学生的滚动号,删除它将删除该学生的记录。

所以希望你能理解我的问题,并期待得到一个准确的答案。

代码语言:javascript
运行
复制
Class.forName("java.sql.DriverManager");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/stud","root","");
Statement stmt=con.createStatement();
String query="delete from info where rollno="+rn.getText();
int  d = stmt.executeUpdate(query);
JOptionPane.showMessageDialog(null,"record deleted successfully!!!");
rn.setText("");
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-01 12:34:11

只有当showMessageDialog变量的值为正时,即某些记录被从数据库中删除时,才应该执行d。例如:

代码语言:javascript
运行
复制
Class.forName("java.sql.DriverManager");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/stud","root","");
Statement stmt=con.createStatement();
String query="delete from info where rollno="+rn.getText();
int  d = stmt.executeUpdate(query);
if(d>0){
    JOptionPane.showMessageDialog(null,"record deleted successfully!!!");
}
rn.setText("");
票数 2
EN

Stack Overflow用户

发布于 2019-10-01 12:29:54

首先,使用PreparedStatement填充参数,而不是组成SQL-字符串。

可以避免非常讨厌的错误(How does the SQL injection from the "Bobby Tables" XKCD comic work?)。所以

代码语言:javascript
运行
复制
PreparedStatement stmt = con.prepareStatement("DELETE FROM info WHERE rollno=?");
stmt.setLong(1, Long.parseLong(rn.getText()));
int d = stmt.executeUpdate();

就你的问题而言:

方法executeUpdate返回受影响的行数。

如果它等于0,则不会删除任何行。

代码语言:javascript
运行
复制
if (d == 0)
{
  JOptionPane.showMessageDialog(null,"This record does not exist");
  // Return or thrown an exception or whatever to interrupt the operation
}
else
  JOptionPane.showMessageDialog(null,"record deleted successfully!!!");
票数 3
EN

Stack Overflow用户

发布于 2019-10-01 12:31:48

检查executeUpdate的结果是否大于0。如果是,则删除您的条目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58184698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档