java - 如何从 Java 将参数化的 DELETE 发送到 MySql

标签 java mysql sql

我想通过以下方式从名为 PersonnelTable 的表中删除:

public void verifyDetailsBeforeClosingAccount(String _idNumber,String _username,String _password ,String _account)
{

    String retrievedNumberAccount = null;
    String retrievedOwnerIdnumber = null;

    try
    {

        // take all the rows with "account-number" and "id-numbder" in the "Checking-account-table" 

        ResultSet results = this.m_statement.executeQuery("SELECT `AccountNumber`, `IdNumber`  FROM `CheckingAccountsTable`");  
        while (results.next() == true)
        {
            retrievedNumberAccount = results.getString("AccountNumber");  // take the account number 
            retrievedOwnerIdnumber = results.getString("IdNumber");       // take the ID number 

            if (retrievedNumberAccount.equals(_account) == true && retrievedOwnerIdnumber.equals(_idNumber) == true )  // found a partial match 
            {
                // put something here
            }
        }
    }
}

我想删除 PersonnelTable 中的一行,其中:

    表中的
  1. Password 列等于提供给函数的 _password
  2. 表中的
  3. UserName 列等于提供给函数的 _username

那行不通:

this.m_statement.executeQuery("DELETE FROM `PersonnelTable` WHERE `Password` = _password AND `UserName` =_username ");

我看过 DELETE 的教程,但没有任何内容说明如何将给定值处理为函数。我怎样才能解决这个问题 ?

问候

最佳答案

用单引号将值括起来,因为它是一个字符串。对吧?

this.m_statement.executeQuery("DELETE FROM `PersonnelTable` 
                               WHERE `Password` = '" + _password + "' AND 
                                     `UserName` = '" + _username + "' ");

好多了 Java Prepared Statement 为此。

string sqlStatement = "DELETE FROM `PersonnelTable` 
                                   WHERE `Password` = ? AND 
                                         `UserName` = ? ";
PreparedStatement pstmt = con.prepareStatement(sqlStatement);
pstmt.setString(1, _password)
pstmt.setString(2, _username)
pstmt.executeUpdate();

关于java - 如何从 Java 将参数化的 DELETE 发送到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867491/

相关文章:

java - 如何序列化 Mimemessage 实例?

mysql - 没有实际外键的一对多关系

mysql - 非典型查询、必要索引、优化

sql - Left Join、Order by、MySQL优化

mysql - 如何在连接其他表中的几列后永久更新表结构

java - 在 Java 8 中,Interface 是否打破了封装的概念?

java - 如何在继续执行之前执行 'flush' UI 线程操作

java - 带有处理程序的简单人工智能?

mysql - 连接2个表SQL

sql - 如何在 MySQL 中指定相对日期?