这里如何防止SQL注入?

这里如何防止SQL注入?,sql,sql-injection,Sql,Sql Injection,在以下代码中,防止SQL注入的最佳方法是什么: Class.forName(driver).newInstance(); conn = DriverManager.getConnection(ConnectionUrl+DBName,Username,Password); query = "SELECT * FROM DealerUser du where " + "du.Username = '"+ userName +"' and du.Password = '"+p

在以下代码中,防止SQL注入的最佳方法是什么:

Class.forName(driver).newInstance();
conn = DriverManager.getConnection(ConnectionUrl+DBName,Username,Password);
query = "SELECT * FROM DealerUser du where " +
            "du.Username = '"+ userName +"' and du.Password = '"+password+"'and " +
            "du.DealerId in (Select d.ID from Dealer d where d.IsSystemDealer = true);";
Statement statement = conn.createStatement();
ResultSet dealer = statement.executeQuery(query);

我试着读了一些博客,但没有读到。只是需要一些指导

用户名
密码
使用参数


(正如一位评论者刚刚添加的,在其中包含一条准备好的语句。)

使用准备好的语句。阅读一些关于参数化查询的内容。@GiorgiNakeuri有什么提示吗?他刚刚给了你一个大提示……而我认为他可以使用谷歌,至少一个相关API的链接可以改进这个答案。他已经有一个API。。。你是在建议我替他做他的工作吗?我给了他一个提示,这应该足以让他发现准备好的陈述,并理解它们为什么重要。。。