mysql 如何在Springboot的SQL语句中传递参数

dohp0rv5  于 2022-11-28  发布在  Mysql
关注(0)|答案(2)|浏览(234)

我有这个代码片段,它将删除user_interests表中的所有行。我有一个int id参数,它是用户ID。我想将此参数传递给我的SQL语句。我曾尝试使用".... user_id = @id",但当我在Postman上运行它时,它不起作用。我还尝试使用静态值为"... user_id = 1",它工作正常。

public boolean deleteInterest(int id) {
        boolean isDeleted = false;
        String sql = "DELETE FROM user_interests WHERE user_id = @id" ;
        
        if(userRepository.findById(id) != null) {
            dbTemplate.execute(sql);
            isDeleted = true;
        }
        
        return isDeleted;
    }

如何将id参数传递给sql语句?

ukxgm1gy

ukxgm1gy1#

您可以像下面这样传递I d参数,因为这是非常基本的。

String sql = "DELETE FROM user_interests WHERE user_id = " + id

这样做可以很好地工作,但是存在SQL注入的风险,因此您应该使用预处理语句设置参数。

2ul0zpep

2ul0zpep2#

String sql = "DELETE FROM user_interests WHERE user_id = '"+parameterName+"'";

可以在sql查询中传递参数,如下所示

相关问题