使用SQL在Java中删除记录
更新:我尝试了以下建议,但仍然不起作用。当尝试employeeid=1时,它确实表示成功,但是进入mysql命令行时,它仍然显示那里的记录 我试着看不同的帖子,我的插入工作,但由于某种原因,我无法删除功能的工作 我正试图删除一条记录,但不断出现错误。运行mysql和netbeans。请帮忙,谢谢使用SQL在Java中删除记录,java,mysql,Java,Mysql,更新:我尝试了以下建议,但仍然不起作用。当尝试employeeid=1时,它确实表示成功,但是进入mysql命令行时,它仍然显示那里的记录 我试着看不同的帖子,我的插入工作,但由于某种原因,我无法删除功能的工作 我正试图删除一条记录,但不断出现错误。运行mysql和netbeans。请帮忙,谢谢 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
statement.executeUpdate("INSERT INTO `abcinc`.`employees`"
+ "(`EmployeeID`,`First_Name`,`Last_Name`,`Birthday`,`Dept_Name`)VALUES("
+ "'" + jTextField1.getText() + "',"
+ "'" + jTextField2.getText() + "',"
+ "'" + jTextField3.getText() + "',"
+ "'" + jTextField4.getText() + "',"
+ "'" + jTextField5.getText() + "');");
JOptionPane.showMessageDialog(null, "Successful Update!!!", "Database Messages",
JOptionPane.OK_OPTION);
}
catch(SQLException error){
JOptionPane.showMessageDialog( null, error.getMessage(), "Database Messages",
JOptionPane.ERROR_MESSAGE );
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
statement.executeUpdate("DELETE FROM `abcinc`.`employees`"
+ "WHERE (`EmployeeID`,`First_Name`,`Last_Name`,`Birthday`,`Dept_Name`)VALUES("
+ "'" + jTextField1.getText() + "',"
+ "'" + jTextField2.getText() + "',"
+ "'" + jTextField3.getText() + "',"
+ "'" + jTextField4.getText() + "',"
+ "'" + jTextField5.getText() + "');");
JOptionPane.showMessageDialog(null, "Successful Update!!!", "Database Messages",
JOptionPane.OK_OPTION);
}
catch(SQLException error){
JOptionPane.showMessageDialog( null, error.getMessage(), "Database Messages",
JOptionPane.ERROR_MESSAGE );
}
}
Delete不遵循该语法 试试像这样的东西
DELETE FROM mytable WHERE mycolumn='X' AND myothercolumn='Y';
其中(员工ID
,名
,姓
,生日
,部门名
)值
需要是一个条件,例如
其中EmployeeID=1
第二,
- ““+jTextField1.getText()+”,” +““+jTextField2.getText()+”,” +““+jTextField3.getText()+”,” +““+jTextField4.getText()+”,” +“'”+jTextField5.getText()+
PreparedStatement ps = null;
try {
ps = conection.prepareStatement("insert into mytable (ID) values (?)");
ps.setString(1, jTextField5.getText());
ps.execute();
我认为delete data sql语法类似于“delete FROM TABLE_NAME WHERE COLUMN=?”,它不包含“values”您的sql delete语句不正确 我想员工编号在您的表格中是唯一的,所以您应该试试 从EmployeeID='someid'所在的表中删除
VALUES子句仅在insert语句中使用 在WHERE子句中,必须使用单个谓词,如
WHERE EmployeeID = ...
AND First_Name = ...
您不必指定要删除的行的所有属性,只需指定标识行所需的属性。您使用的
delete
的SQL语法不正确(对于delete,没有什么比value
更合适的了)。谢谢大家。这段代码是我的教授写的。我试图跟着它,但不明白。用户可以在其中输入信息的字段为空。主键是输入人员的SS(员工id)。我将尝试以下建议您的教授需要使用准备好的语句。private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){//TODO在此处添加您的处理代码:try{statement.executeUpdate(“从abcinc
员工中删除)”+“WHERE employeeid=1”)所以我猜它会/应该是这样的?即使WHERE子句不匹配记录,AFAIK DELETE也总是成功返回(语法正确时)。谢谢,现在我不想将其更改为preparedstatement,因为我还不太熟悉java。我宁愿将其保留为我的“insert”语句行得通。我将尝试where employeeID=1。同样,当我使用employeeID=1时,“1”来自何处?谢谢,我尝试了这个,但由于某种原因没有起作用:statement.executeUpdate(“从abcinc
员工”+“where'employeeID'=jTextField1.getText()”)“可能是您引用的值。我建议阅读您收到的错误消息和我的答案中发布的文档。此外,尝试不使用jtextfield
集成,只需先进行查询即可。您的引用是错误的,如果您一次只关注一点就可以了。谢谢,我尝试过了,但出于某种原因,它不起作用。”执行更新(“从abcinc
”+“其中'employeeID'=jTextField1.getText()”);请注意,您将jTextField1.getText放在“”中,使其成为字符串而不是函数调用谢谢,我尝试过了,但出于某种原因,它没有接受语句。执行更新(“从abcinc
employees
“+”中删除,其中'employeeID'=jTextField1.getText()”;